ID不会显示在模板上

时间:2015-12-13 22:35:07

标签: python django

我试图保存具有自动增量ID的模型对象,然后获取该ID并在模板中使用它。虽然身份证明不会出现。

这是处理提交的代码:

def process_submission(request):
    if request.method == 'POST':
            submission=request.POST
            temp = Listing(title=submission['title'],pub_date=datetime.datetime.now(),email=submission['email'],price=submission['price'],body=submission['body'],subject=submission['subject'],course_number=submission['course_number'])
            temp.save()
            return render(request, 'listing/success.html', {'temp', temp})

然后是success.html的相关部分

<p>Submission Successful!</p>
<p>You can find your listing at: <a href="blah/{{temp.id}}">URL/{{temp.id}}</a></p>

ID不会出现。我不太清楚为什么这不起作用。有什么想法吗?

感谢。

编辑:

以下是有问题的模型:

class Listing(models.Model):
    title = models.CharField(max_length=100)
    pub_date = models.DateTimeField('Date Published')
    email = models.CharField(max_length=200)
    price = models.CharField(max_length=20)
    body = models.CharField(max_length=1500)
    subject = models.CharField(max_length=4)
    course_number = models.CharField(max_length=4)

    def __str__(self):
            return self.title

2 个答案:

答案 0 :(得分:0)

实际上,您上面提到的代码应该可行。请查看此文档:https://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#auto-incrementing-primary-keys,请确保您使用AutoField作为ID。

答案 1 :(得分:0)

您是否在模型中的其他字段上设置了primary_key=True?如果是这样,Django将不会自动提供id字段。或者您可能声明了自己的名为id的字段?如果你的模型中有另一个有效的主键,你可以在你的模板中使用它而不是Django自动增加的id。

在视图中保存记录后,尝试打印id的值。