我试图使用我创建的函数添加一个评论,出现了这个错误。
这是我在models.py中的Review模型,它在app中review
class Review(models.Model):
title=models.CharField(max_length=100)
place=models.ForeignKey(Place,on_delete=models.CASCADE,null=True)
location=models.CharField(max_length=100,default='place')
photo=models.ImageField(upload_to='places')
desc=models.TextField(max_length=3000,default=None)
name=models.CharField(max_length=50,default=None)
def __str__(self):
return self.location
字符串
这是地址
href="{% url 'review:add_review' place.slug %}"
型
这是路径
from django.urls import path
from review import views
app_name="review"
urlpatterns = [
path('add_review/<slug:pslug>',views.addreview,name='add_review'),
]
型
这是views.py中的添加评论函数
def addreview(request,pslug):
place=Place.objects.get(slug=pslug)
if(request.method=="POST"):
user=request.user
title=request.POST['title']
review=request.POST['review']
photo=request.FILES['photo']
review=Review.objects.create(title=title,desc=review,
name=user,photo=photo,
place=place)
review.save()
return placedetail(request,pslug)
else:
pass
return render(request,'addreview.html')
型
我做错了什么,我该如何弥补……
1条答案
按热度按时间ubby3x7f1#
在模型定义中,您声明
字符串
这意味着名称必须填充CharField,这意味着,它必须是一个文本。
在你看来,当你这么做的时候
型
您试图用
user
填充“name”字段,这是一个包含用户模型示例的变量(阅读上面的user=request.user
)如果你想让“name”成为评论的作者,你需要改变你的模型(name将是一个指向用户模型的ForeignKey)。或者你可以用一个文本填充“name”,这样也可以解决这个问题(但我不知道你的确切目标是什么)。