我试图保存具有自动增量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
答案 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
的值。