gpt4 book ai didi

python - 如何在Django中的views.py中的一个类下显示模型和表单?

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:53 26 4
gpt4 key购买 nike

我正在尝试在详细信息模板中显示数据,我将使用 AgentForm 获取该数据,并且我还尝试添加一个对于每个代理来说都是唯一的 Matrix1Form,并且该 matrix1form 将显示在details.html 中。

这是我的views.py,如果我尝试显示Matrix1Form,则不会显示代理模型中的数据,反之亦然,如果我想显示代理,我必须注释掉Matrix1Form。到目前为止还没有出现任何错误。数据只是不显示。

View .py

class AgentDetailsView(generic.DetailView):
template_name = 'User/AgentDetails.html'

class Meta:
model = Agent

def get(self, request, *args, **kwargs):
matrix1form = Matrix1Form()
return render(request, self.template_name, {'matrix1form':
matrix1form})

表单.py

class AgentForm(forms.ModelForm):
prefix = 'agentform'
class Meta:
model = Agent
fields = '__all__'

class Matrix1Form(forms.ModelForm):
prefix = 'matrix1form'
class Meta:
model = Matrix1
fields = '__all__'

模型.py

class Agent(models.Model):
AgencyName = models.CharField(blank=True, max_length = 50,
verbose_name="Agency Name")
OtherAgencyName = models.CharField(max_length=50, blank=True)
FirstName = models.CharField(max_length=50, null=True)
LastName = models.CharField(max_length=50, null=True)

详细信息.html

    <ul>
<li>AgencyName: {{agent.AgencyName}} </li>
<li>OtherAgencyName: {{agent.OtherAgencyName}} </li>
<li>First Name: {{agent.FirstName}} </li>
<li>Last Name: {{agent.LastName}} </li>
</ul>

<form class="form-horizontal" action="" method="post"
enctype="multipart/form-data">
{% csrf_token %}
<table>
{{ matrix1form.as_table }}
</table>
</form>

最佳答案

如果我理解正确,您需要覆盖 get_context_data 例如:

class AgentDetailsView(generic.DetailView):
template_name = 'User/AgentDetails.html'

class Meta:
model = Agent

def get_context_data(self, **kwargs):
# ^^^^^^^^^^^^^^
context = super(AgentDetailsView, self).get_context_data(**kwargs)
matrix1form = Matrix1Form()
context['matrix1form'] = matrix1form
return context

关于python - 如何在Django中的views.py中的一个类下显示模型和表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46410569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com