获取Django Admin中的状态下拉列表

xti*_*ine 1 django django-admin

我为一个企业列表制作了一些基本模型,如下所示:

class Business(models.Models):
    id = models.IntegerField(primary_key=True)  
    name = models.CharField(max_length=225, blank=True)  
    address = models.CharField(max_length=150, blank=True)  
    city = models.CharField(max_length=150, blank=True)   
    state_id = models.IntegerField(null=True, blank=True)  
    zip = models.CharField(max_length=33, blank=True)  
    country = models.CharField(max_length=150, blank=True)  
    url = models.CharField(max_length=765, blank=True)  

class States(models.Model):  
    id = models.IntegerField(primary_key=True)  
    name = models.CharField(max_length=96)  
    state_abbr = models.CharField(max_length=24, blank=True)  
Run Code Online (Sandbox Code Playgroud)

在我编辑每个业务的管理员中,它显示了state_id字段.但是,如何将其与状态模型连接以显示状态的选择下拉列表?

另外,如何在业务视图中显示州缩写?

Dav*_*ave 8

另一种不需要单独的状态表的替代方法:

from django.contrib.localflavor.us.us_states import STATE_CHOICES

class Business(models.Models):
    ...
    state = models.CharField(max_length=2, choices=STATE_CHOICES, null=True, blank=True)  
    ...
Run Code Online (Sandbox Code Playgroud)

  • 注意:从版本1.6开始,localflavor不再是django.contrib的一部分.它在一个名为django-localflavor的app(可通过pip获得)中单独管理. (4认同)

vin*_*yll 6

2015 年编辑 (django 1.8)

您应该查看 django 官方 localflavor 存储库:https : //github.com/django/django-localflavor

from localflavor.us.models import USStateField

class Business(models.Models):
    …
    state = USStateField(null=True, blank=True)
    …
Run Code Online (Sandbox Code Playgroud)

存储库上提供了针对此特定用途的一些测试

文档可在此处获得