自动填充ManyToManyField不起作用。 我尝试了here和here的所有变体。但是他们没有工作。 我的模特:
class MyUser(AbstractBaseUser):
email = models.EmailField(max_length=100, unique=True)
class Order(models.Model):
user = models.ManyToManyField(MyUser)
quantity = models.PositiveIntegerField(default=1)
我的表单:
class OrderForm(forms.ModelForm):
user = forms.ModelMultipleChoiceField(queryset=None, to_field_name='email')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['user'].queryset = MyUser.objects.all()
我的观点:
def product_order(request, id):
if request.method == 'POST':
form = OrderForm(request.POST or None, initial={'user': request.user.email})
if form.is_valid():
new_form = form.save()
return HttpResponseRedirect('/shop/')
else:
form = OrderForm()
return render(request, 'shop/product_detail.html', locals())