2016-11-29 39 views
0

我已經嘗試了其他類似問題的帖子,但我正在處理的代碼是由第三方製作的,而且我遇到了一些小問題。我根本無法用我想要的初始值定義其中一種形式。如何進行?如何在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'), 
    ) 

我只需要situacao預先選擇Ativado卻找不到任何解決方案。需要幫助謝謝。

+2

我不明白你爲什麼有一個單獨的選擇類,我特別不明白爲什麼它從models.Model繼承。 –

+0

可以爲models.CharField(...,default ='Ativado')設置默認值嗎? – jarmod

+0

就像我說的,不是我的代碼,這些文件是超級混亂的,因爲我在飛行中學習django,它使它更難.... –

回答

1

您是否嘗試在situacao字段中設置default參數。

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

耶 –

相關問題