回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我对Django很陌生,我已经在这个观点上停留了一段时间。我使用此表单的目标是能够在“属性”上创建一个关于维护或其他信息的小注释。注释将记录时间、日期、注释和记录注释的用户。任何帮助都将不胜感激</p>
<p>视图:</p>
<pre><code>@login_required(login_url="login")
def createNote(request, pk):
PropertyNoteFormSet = inlineformset_factory(
Property, PropertyNote, fields=('note', 'user',))
property_note = Property.objects.get(id=pk)
form = PropertyNoteFormSet(instance=property_note)
# form = OrderForm(initial={'customer': customer})
if request.method == "POST":
print(request.POST)
form = PropertyNoteFormSet(
request.POST, instance=property_note)
if form.is_valid():
form.save()
return redirect("/")
context = {"form": form}
return render(request, "dashboard/create_note.html", context)
</code></pre>
<p>以下是模型表单:</p>
<pre><code> class PropertyNoteForm(ModelForm):
class Meta:
model = PropertyNote
fields = ['note']
exclude = ['user']
</code></pre>
<p>模型如下:</p>
<pre><code> class PropertyNote(models.Model):
airbnb_name = models.ForeignKey(Property, blank=True,
null=True,on_delete=models.CASCADE)
note = models.TextField(blank=True, null=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
created_on = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.note
</code></pre>
<p>这份表格大约有4个方框需要填写。目前,它的工作,但你必须实际选择的用户是张贴说明,我想这部分是自动处理,并使用当前登录的用户。我想我在这方面的知识还有很多漏洞,我就是想不出来</p>
<p>提前谢谢</p>
<p><strong>编辑:</strong></p>
<p>我试过这个:</p>
<pre><code>def createNote(request, pk):
PropertyNoteFormSet = inlineformset_factory(
Property, PropertyNote, fields=('note',), extra=1)
property_note = Property.objects.get(id=pk)
form = PropertyNoteFormSet(
queryset=PropertyNote.objects.none(), instance=property_note)
# form = OrderForm(initial={'customer': customer})
if request.method == "POST":
print(request.POST)
form = PropertyNoteFormSet(
request.POST, instance=property_note)
if form.is_valid():
instance = form.save(commit=False)
instance.user = request.user
print(instance.user)
instance.save()
return redirect("/")
context = {
"form": form,
'pk': pk,
}
return render(request, "dashboard/create_note.html", context)
</code></pre>
<p>但我明白了:</p>
<pre><code>AttributeError at /create_note/75/
'list' object has no attribute 'user'
Request Method: POST
Request URL: http://127.0.0.1:8000/create_note/75/
Django Version: 3.0.4
Exception Type: AttributeError
Exception Value:
'list' object has no attribute 'user'
</code></pre>