0
在我的Django項目中,我製作了一個表單來創建模型。發送表單/創建模型時,我想在'作者'字段中引用當前用戶。 我遇到了一些麻煩。Django - 'Created by'字段
author = forms.ModelChoiceField(queryset=User.objects.all())
我只想讓模型的創建者保存在此字段中。那可能嗎?
在我的Django項目中,我製作了一個表單來創建模型。發送表單/創建模型時,我想在'作者'字段中引用當前用戶。 我遇到了一些麻煩。Django - 'Created by'字段
author = forms.ModelChoiceField(queryset=User.objects.all())
我只想讓模型的創建者保存在此字段中。那可能嗎?
這是模型應該是什麼樣子:
class Book(models.Model):
name = models.CharField(max_length=100)
author = models.ForeignKey(settings.AUTH_USER_MODEL)
一些形式:
class BookForm(ModelForm):
class Meta:
model = Book
fields = ['name']
最後的觀點,這使得它發生。
class BookView(FormView):
form_class = BookForm
def form_valid(self, form):
book = form.save(commit=False)
book.author = self.request.user
book.save()
但請記住確保有登錄的用戶。
讓我看看你的模型。你應該在那裏字段'author = models.OneToOneField(User,related_name ='authors')'。當你在ModelForm中有這個..你將不需要ModelChoiceField。 – 2014-09-24 12:01:35
嗯,有一個ForeignKey,把它改爲OneToOneField,還沒有知道。那我需要什麼? – Dominic 2014-09-24 12:06:35
做了一個非常骯髒的JS解決方案。在隱藏字段中寫入用戶標識,並將Option-Field的值設置爲用戶標識。作品! – Dominic 2014-09-24 12:49:05