我想創建一個餐廳評論提交頁面,其中提交評論的用戶的用戶名保存在數據庫表中。我想我必須重寫CreateView的保存方法,但我不知道如何。如何將當前登錄的用戶名保存在Django的CreateView提交操作中?
這是我到現在爲止。
views.py
class WriteReview(CreateView):
model = Review
success_url = reverse_lazy('restaurant_list')
fields = ['restaurant','review']
models.py
class Review(models.Model):
restaurant = models.ForeignKey('Restaurant')
review = models.TextField()
user = models.CharField(default='', max_length=100)
time = models.DateTimeField(auto_now_add=True)
def __str__(self):
return "%s review: %s..." % (self.restaurant, self.review[:20])
我通過自定義form_valid方法解決了這個問題。這裏是代碼: def form_valid(self,form): form.instance.user = self.request.user return super(WriteReview,self).form_valid(form) – MiniGunnR 2014-10-04 16:41:02