我有一个问题。我需要添加第二个功能到Django管理面板:
- 我有2个模型(城市和地区),一个地区有许多城市;
- 在我的管理面板,我想添加城市列表Excel文件,当我创建新的区域
models.py
class City(models.Model):
name = models.CharField('Город', max_length=50, unique=True)
slug = models.SlugField(max_length=50, unique=False, blank=True, null=True)
city_latt = models.CharField('Широта', max_length=50, blank=True, null=True)
city_long = models.CharField('Долгота', max_length=50, blank=True, null=True)
country = models.CharField('ISO код страны', max_length=5)
class Meta:
verbose_name = 'Город'
verbose_name_plural = 'Города'
def __str__(self):
return self.name
个字符
那么我如何在我管理员中创建自定义表单,在那里我可以上传文件,然后将特定的区域分配给上传的城市?
现在我的区域管理员看起来像这样:admin.py
class CantonForm(forms.ModelForm):
canton_city = forms.ModelMultipleChoiceField(queryset=City.objects.order_by('name'), label='Города')
class Meta:
model = City
fields = '__all__'
class CantonAdmin(admin.ModelAdmin):
# class CantonAdmin(ImportMixin, admin.ModelAdmin):
list_display = ('__str__', 'canton_name', 'canton_code_for_map', 'canton_shortify', 'slug', 'get_cities', 'country')
list_filter = ('canton_name', 'country')
search_fields = ['canton_name__icontains', 'canton_shortify__icontains', 'canton_city__name__icontains', 'country']
form = CantonForm
ordering = ['canton_name']
admin.site.register(Canton, CantonAdmin)
型
1条答案
按热度按时间nbysray51#
要准确理解你的意思并不容易。你能提供更多的细节吗?一个图表或带注解的屏幕截图会有所帮助。
如果你想在导入屏幕中有一个额外的表单字段,你可以在上传中为每个城市分配 * 相同 * 的区域,那么这是可能的,文档中有一个你可以复制的例子。
但是,如果你想能够修改界面中的每个城市,这将是一个很大的困难。