2016-11-29 8 views
0

私はすでに同様の問題を抱えた他の投稿を試みましたが、私が扱っているコードは第三者によって作成されており、小さな問題があります。私は単純にフォームの1つを私が望む初期値で定義することはできません。どうやって進める?Djangoでドロップダウンをあらかじめ選択する方法は?

models.py

class Livro(models.Model): 
codigo = models.AutoField(primary_key=True) 
nome = models.CharField("Nome", max_length=50, unique = True) 
autor = models.CharField("Autor", max_length=50, unique = True) 
edicao = models.CharField("Edição", max_length=30, unique = True) 
disciplina = models.ForeignKey(Disciplina) 
tipo = models.CharField("Tipo", max_length=20, choices = Choices.tipo) 
ano = models.CharField("Ano", max_length=30, choices = Choices.ano) 
situacao = models.CharField("Situação", max_length=30, choices = Choices.situacao, blank = True, null = True) 
def __unicode__(self): 
    return self.nome 

views.py

def cadastrar_livro(request): 
form = LivroForm(request.POST or None) 
if form.is_valid(): 
    salvo = form.save(commit=False) 
    salvo.situacao = "Ativado" 
    salvo.save() 
    return HttpResponseRedirect('/principal') 
return render_to_response('cadastrar_livro.html', locals(),  context_instance = RequestContext(request)) 

とchoices.py

class Choices(models.Model): 
    tipo = (
     ('1', 'Seriado'), 
     ('2', 'Único'), 
    ) 

    ano = (
     ('1', '1º'), 
     ('2', '2º'), 
     ('3', '3º'), 
     ('4', 'Único'), 
    ) 

    situacao = (
     ('Ativado', 'Ativado'), 
     ('Desativado', 'Desativado'), 
    ) 

に私はちょうど選択Ativadoを事前にsituacao必要がありますが、任意のを見つけることができませんそれに対する解決策。助けが必要です。

+2

なぜ別のChoicesクラスがあるのか​​わかりません。なぜモデルがModel.Modelから継承されたのか分かりません。 –

+0

models.CharField(...、default = 'Ativado')のデフォルト値を設定できますか? – jarmod

+0

私が言ったように、私のコードではなく、ファイルが厄介で、飛行中にジャンゴを学んでいるので、そのファイルはさらに難しくなります。 –

答えて

1

default引数をsituacaoフィールドに設定しようとしましたか?

situacao = models.CharField("Situação", max_length=30, choices=Choices.situacao, default=Choices.situacao[0][1], blank=True, null=True) 
+0

は、動作しませんdefaust = 'Ativado' –

+0

申し訳ありませんが、それは 'Choices.situacao [0] [1]' –

+0

ええも同様に動作するようにする必要があります、 –

関連する問題