2017-11-06 8 views
1

私はまだdjangoとPythonの初心者です。これも私の最初の質問です。私は隠しフィールドを作成しようとしており、自動的に隠しフィールドに値を割り当てます。これは、ビューまたはテンプレートのいずれかにあります。私は隠されている必要があるフィールド "kind"を持っています。また、異なるビュー/テンプレートに応じてデータベースに値を割り当てる必要があります。隠しフィールド、自動でdjangoの値を割り当てます

これは私のクラス図である:

class Monthlypage(CreateView): 
    template_name = 'monthly.html' 
    model = models.Lead 
    form = forms.LeadForm() 
    fields = ['name','email','tel','kind'] 

これは私のモデルの形である:

class LeadForm(forms.ModelForm): 

    def __init__(self, *args, **kwargs): 
     kind = models.Lead.kind 
    class Meta: 
     model = models.Lead 
     kind = forms.CharField(widget=forms.HiddenInput()) 
     fields = ['name','email','tel','kind'] 

これは私のモデルである:

class Lead(models.Model): 
    name = models.CharField(max_length=265) 
    email = models.EmailField(max_length=265) 
    tel = models.IntegerField() 
    kind = models.CharField(max_length=265) 

    def __str__(self): 
     return self.name 
    def get_absolute_url(self): 
     return reverse('registrations') 

これは私のテンプレートです:

<form class="" method="post"> 
    {% csrf_token %} 
    {% bootstrap_form form %} 
    <input type="hidden" name="kind" value="{{ form.kind.monthly }}" /> 
    <input type="submit" name="" value="Submit" class="btn btn-info"> 

私は多くのオプションを試してみましたが、さまざまなソリューションを使用して2日間を過ごすいます。しかし、私が何をするにしても、私はデータベースの種族分野を埋めることはできません。

+0

解決策ではありませんが、両方のフィールドをモデルフォームのビューで宣言する必要はありません。最後のものを使用することをお勧めします。また、すべてのフィールドを使用する場合は、このように 'fields = '__ all __''を実行することができます。 –

+0

こんにちは、あなたは答えを投稿しましたが、それは消えました、あなたはそれを削除しましたか? – Hennie

+0

はい、あなたのコードをよく読むと、それは悪い答えだったと思います。 –

答えて

0

解決策が見つかりました!うん!より良い解決法があれば教えてください!

これは私のクラス図である:

class Monthlypage(CreateView): 
    template_name = 'monthly.html' 
    model = models.Lead 
    form_class = forms.LeadForm 

これは私のモデルの形である:

class LeadForm(forms.ModelForm): 

    class Meta: 
     model = models.Lead 
     fields = ['name','email','tel','kind'] 
     widgets = { 
     'kind':forms.HiddenInput() 

     } 

これは私のモデルである:

class Lead(models.Model): 
    name = models.CharField(max_length=265) 
    email = models.EmailField(max_length=265) 
    tel = models.IntegerField() 
    kind = models.CharField(max_length=265) 

    def __str__(self): 
     return self.name 
    def get_absolute_url(self): 
     return reverse('registrations') 

これは私のテンプレートです:苦労の2日後の最後

<form class="" method="post"> 
{% csrf_token %} 
{% bootstrap_form form %} 
<input type="hidden" name="kind" value="monthly"> 
<input type="submit" name="" value="Submit" class="btn btn-info"> 

、私は、これは他の誰かを助けることを願って!

関連する問題