2

在我的网站上,我有一个“撰写电子邮件”页面,其中包含三个字段 - 主题、收件人和正文。在我的数据库中,我在models.py中有这个自定义用户模型:

class MyUser(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    school = models.CharField(max_length=100)

    def __unicode__(self):
        return self.user

我想创建一个表单来导入包含所有MyUser对象的联系人。目前,我在forms.py中有这个:

class ContactForm(forms.Form):
    contacts = forms.ModelMultipleChoiceField(widget=forms.Select(attrs={'size':'13', 'onchange':'this.form.action=this.form.submit()'}), queryset=MyUser.objects.all().order_by('user'))#, empty_label=None)

    def __init__(self, *args, **kwargs):
        super(ContactForm, self).__init__(*args, **kwargs)
        self.fields['contacts'].queryset = MyUser.objects.all()

在我的views.py中,我有以下视图:

def import_contacts(request):
    contact_form = ContactForm()
    if request.method == "POST":
        contact_form = ContactForm(request.POST)
        if contact_form.is_valid:
            # send data to be processed
            return render(request, 'compose_email.html', {
                'form': contact_form,
            })
    errors = contact_form.errors or None  # form not submitted or it has errors
    return render(request, 'apple/contact_import_form.html', {
        'form': contact_form,
        'errors': errors,
    })

contact_import_form.html

...
<div class="form-panel">
  <form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <div id="sub">
      <button type="submit" class="button">Add</button>
    </div>
  </form>
</div>
...

最后,这是我链接到 import_contact_form.html compose_email.html的 .html 文件:

...
<a class="emailButton" id="b1" href="/gordie/home/templates/">Import Template</a>
<a class="emailButton" id="b2" href="/home/send_email/import_contacts/">Import Contacts</a>
  <!-- <button class="emailButton" id='b2'>Import Contacts</button> -->
  <div class="form-panel">
    <form method="post">
      {% csrf_token %}
      {{ form.as_p }}
      <div id="sub">
        <button type="submit" class="button">Send</button>
      </div>
    </form>
  </div>
...

当我进入“导入联系人”页面时,我没有看到任何表单,只有一个显示“添加”的按钮。我想要一些联系人列表(下拉列表会很棒)。可能我在其他地方有问题(对 Django 来说相当新),但我相信我在 ModelMultipleChoiceField 上做错了。你怎么看?

4

0 回答 0