我需要通過 request.user.username 選擇 User 來形成并保存到資料庫中。這里我有一個forms.py的代碼
class Send(forms.ModelForm):
sender = forms.ModelChoiceField(queryset=User.objects.order_by('username')
這是models.py,我將在其中保存有關用戶的資料:
class SendM(models.Model):
sender = models.ForeignKey(User, null=True, blank=False, on_delete=models.CASCADE)
這是views.py,我在那里獲取資料
def form_create(request):
if not request.user.is_anonymous:
form = Send(request.POST or None, initial={'sender': request.user.username})
if request.method == "POST":
if form.is_valid():
send = SendM(sender=User.objects.get(username=form.cleaned_data['sender']))
send.save()
return redirect("/")
為了理解我想用在資料庫中找到的用戶預先填充陣列。
非常感謝!!
它只這樣做:[1]:https : //i.stack.imgur.com/XY2fl.png
uj5u.com熱心網友回復:
表單中的初始值是用戶參考,而不是用戶名,因為您使用的是ModelChoiceField. 我現在真的不記得它是模型實體(initial={'sender': request.user})還是模型主鍵(initial={'sender': request.user.pk}).
然后之后form.is_valid(),就不需要再次從資料庫中獲取用戶了。您只需要呼叫表單上的 save 方法。Django 做剩下的。
if form.is_valid():
send = form.save()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/370840.html
