2017-09-25 97 views
1

我想顯示詳細信息模板中的數據,我將使用AgentForm獲取數據,並且還嘗試添加對每個代理都是唯一的Matrix1Form,並且該matrix1form將顯示​​在details.html中。如何在Django的views.py中的一個類下顯示模型和表單?

這裏是我的views.py,如果我嘗試顯示Matrix1Form,來自Agent模型的數據不會顯示,反之亦然,如果我想顯示一個代理,我必須註釋掉Matrix1Form。到目前爲止沒有出現任何錯誤。數據只是不顯示。

views.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}) 

forms.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__' 

models.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) 

details.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> 

回答

1

如果我理解你改正,你需要重寫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 
+0

我是比較新的堆棧溢出,我已經投了你的答案。它說投票已經記錄,但沒有公開顯示。但你的回答正是我想要的!謝謝! – Sukhrab

相關問題