【问题标题】:Putting my Django form into HTML将我的 Django 表单放入 HTML
【发布时间】:2016-03-04 20:47:20
【问题描述】:

我正在尝试创建成员 ID 的下拉列表供用户选择。我在 forms.py 中创建了一个名为 SelectForm 的表单:

from .models import Member
from django import forms 

class MemberForm(forms.ModelForm):
    class Meta:
        model = Member
        fields = '__all__'

class SelectForm(forms.Form):
    memberid = forms.ModelChoiceField(queryset=Member.objects.values_list('member_id', flat=True))

与视图:

class SelectView(generic.ListView):
  template_name = 'expcore/select_member.html'
  model = Member

  def select_member(request):
    form = SelectForm()
    if request.method == 'POST':
      form = SelectForm(request.POST)
      if form.is_valid():
        return HttpResponseRedirect('/questions/')
    else:
      form = SelectForm()
    return render(request, 'select_member.html', {'form': form}) 

现在,HTML 给我的所有内容都是“成员选择:请 blablablabla”,其中包含与现有成员 ID 数量相对应的项目符号列表。但是,实际的会员 ID 并没有显示出来;此外,整个事情现在都是列表格式,而不是我想要的下拉菜单。

select_member.html:

{% load staticfiles %}

<title>Member Selection</title>

<h1>Member Selection</h1>

Please select your Member ID from the drop-down menu.

<ul>
{% for member_id in object_list %}
    <li><a href='/member/{{ member.name }}'></a></li>

{% empty %}
    <li>None available.</li>
{% endfor %}
</ul>

我相信我创建的表单应该为我生成一个下拉菜单,但我认为我的视图/HTML 不正确。你们能帮帮我吗?

另外 - 成员 ID 在我的 models.py:

中的成员类下
class Member(models.Model):
    member_id = models.SlugField(max_length=10)
    def __str__(self):
         return self.name

谢谢。

【问题讨论】:

  • 您没有在模板中使用对象表单。而且,object_list 变量是什么???在你看来,我没有看到。要显示对象表单,您可以在模板中使用:{{ form }}
  • @AngelCruijff 我应该把 {{ form }} 放在哪里?我需要删除任何东西吗?

标签: python html django django-forms django-templates


【解决方案1】:

请查看此第三方应用程序:django-crispy-forms。它会让你的生活更轻松。

【讨论】:

    【解决方案2】:

    在您的模板中:

    {% load staticfiles %}
    
    <title>Member Selection</title>
    
    <h1>Member Selection</h1>
    
    Please select your Member ID from the drop-down menu.
    
    <!-- Form -->
    <form method="POST" action="your_view">
    {{ form }}
    </form
    
    <ul>
        {% for member_id in object_list %}
            <li><a href='/member/{{ member.name }}'></a></li>
    
            {% empty %}
            <li>None available.</li>
        {% endfor %}
    </ul>
    

    【讨论】:

    • 将“your_view”替换为“select_member”和“SelectView”,但没有显示:/
    猜你喜欢
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2012-01-24
    • 2021-05-29
    • 1970-01-01
    • 2018-01-19
    相关资源
    最近更新 更多