2013-06-18 12 views
5

Ragazzo, mi sembra di aver provato TUTTO qui e non riesco a ottenere correttamente questo modulo (ad es. Con un sottoinsieme di campi). Ecco gli elementi pertinenti (elementi aggiuntivi rimossi):Esclusione di campi nelle viste basate sulla classe Django non funziona

models.py:

class Response(models.Model): 
    public = models.BooleanField(default=False) 
    question = models.CharField(max_length=255, default='', blank=True) 

class ResponseForm(ModelForm): 
    class Meta: 
     model = Response 
     fields = ['question'] 

views.py:

class ResponseCreate(CreateView): 
    model = Response 
    fields = ['question'] 

response_form.html:

<form action="" method="post">{% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Create" /> 
</form> 

ho leggi ogni bit di documenti e ti suggeriscono di utilizzare exclude, excludes, field, fields in permutazioni di tupla, o lista, e non importa quale sia il campo "pubblico" che appare ogni volta ! Pensieri?

Grazie per il vostro aiuto!

+0

Se si aggiunge una virgola nel modulo, 'campi = [ 'domanda',]', fa che le cose cambiano? –

+0

@ScottWoodall Questo farebbe la differenza solo per il tipo di tupla, non per la lista – karthikr

risposta

9

Sembra che è necessario specificare form_class sulla vostra vista:

class ResponseCreate(CreateView): 
    model = Response 
    form_class = ResponseForm 
+0

Wow, è stato facile. I documenti lo saltano davvero. Grazie! – aronchick

0

Proprio voglio dire che non si ha bisogno davvero un ModelForm da creare separatamente.

Le viste generiche brillano davvero quando si lavora con i modelli. Queste generiche vista creerà automaticamente aModelForm, fintanto che possono lavorare quale classe del modello da utilizzare

Si può semplicemente utilizzare questo.

class Response(models.Model): 
    public = models.BooleanField(default=False) 
    question = models.CharField(max_length=255, default='', blank=True) 

class ResponseCreate(CreateView): 
    model = Response 
    fields = ['question'] 
Problemi correlati