SORU
11 NİSAN 2009, CUMARTESİ


Boş seçeneği seçin kutusunda Özelleştir/Kaldır Django

Django 1.0.2 kullanıyorum. Bir ModelForm bir Model tarafından desteklenen yazdım. Bu model=Yanlış bir ForeignKey vardır. Django bu form için HTML oluşturur tablo ForeignKey tarafından başvurulan her satır için bir seçenek ile bir seçim kutusu oluşturur. Ayrıca tire: bir dizi değer ve görüntüler var bu listenin üst kısmında bir seçenek oluşturur

<option value="">---------</option>

Bilmek istediğim şey:

  1. Otomatik olarak oluşturulan seçeneğini seçin kutusundan bu kaldırmak için en temiz yolu nedir?
  2. Olarak gösterecek şekilde özelleştirmek için en temiz yol budur:

    <option value="">Select Item</option>
    

Bir çözüm ararken bana Diğerleri aynı soru olduğu izlenimi verdi ve Django varsayılan davranışını değiştirildi Django ticket 4653 rastladım. Bu bilet, bu şeyleri yapmak için temizleyici bir yolu olabileceğini düşünmüştüm. bir yıl eski.

Herhangi bir yardım için teşekkürler

Jeff

Edit: gibi: ForeignKey alan yapılandırdım

verb = models.ForeignKey(Verb, blank=False, default=get_default_verb)

Bu artık boş/tire seçeneği " varsayılan ayarlayın ama ne yazık ki benim soru da çözmek için görünmüyor. O, boş/tire seçeneği hala listede görünür.

CEVAP
11 NİSAN 2009, CUMARTESİ


Bu test değil, ama Django kod here here okuma dayalı çalışması gerektiğini düşünüyorum:

class ThingForm(models.ModelForm):
  class Meta:
    model = Thing

  def __init__(self, *args, **kwargs):
    super(ThingForm, self).__init__(*args, **kwargs)
    self.fields['verb'].empty_label = None

EDİTBu ise otomatik oluşturulan ModelForm. bir çalışıyorsanız mutlaka ModelChoiceField aramak için bilmezsin ama 13**.

EDİTOnun cevabı jlpp belirttiği gibi, bu tam - empty_label özniteliği değiştirdikten sonra aletler için Yeniden Atama seçimler için değil. Bu biraz hacky yana, anlamak daha kolay olabilir diğer seçeneği sadece tüm ModelChoiceField geçersiz kıldı:

class ThingForm(models.ModelForm):
  verb = ModelChoiceField(Verb.objects.all(), empty_label=None)

  class Meta:
    model = Thing

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • joshsnice

    joshsnice

    28 Kasım 2006
  • Metheud

    Metheud

    9 EYLÜL 2006