繁体   English   中英

ID不会显示在模板上

[英]ID won't show up on template

我正在尝试保存一个具有自动递增ID的模型对象,然后获取该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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM