Ben*_*Ben 1 django django-models django-forms
这应该是一个简单的问题,但它现在已经让我失望了一段时间.
我想保存一个模型,但我不断收到上述错误.
class Favorite(models.Model):
post=models.ForeignKey(Post)
user=models.ForeignKey(User)
note=models.TextField(max_length=1000, blank=True)
def listing(request, pid):
post=get_object_or_404(Post,pk=pid)
favform=FavoriteForm()
try:
ratings=post.post_rating_set.all()
score=ratings.aggregate(mark=Avg('rating'))
score=int(score.get('mark',0))-1
except AttributeError:
ratings=''
score=1000
if request.method=="POST" and request.POST.get('save_it',''):
user=User.objects.get(pk=request.user.id)
favorite=FavoriteForm(request.POST)
if favorite.is_valid:
favorite.save(commit=False)
favorite.user=user
favorite.post=post
favorite.save()
Run Code Online (Sandbox Code Playgroud)
我的表单验证,我已经测试了用户和帖子,它们都包含预期的查询集.我尝试不先保存最喜欢的表单,但也失败了.m2m不适合这里.
这是mysql设置错误吗?
您使用commit=False不当.save()返回一个实例,你只是在表单上调用两次保存.
改为:
favorite = favorite.save(commit=False)
# now, favorite is an instance returned by save.
favorite.user=user
favorite.post=post
favorite.save()
Run Code Online (Sandbox Code Playgroud)
我个人将表单最喜欢的形式命名为区分实例和表单.
| 归档时间: |
|
| 查看次数: |
1517 次 |
| 最近记录: |