Django admin自定义表单与上传数据

jaxagkaj  于 11个月前  发布在  Go
关注(0)|答案(1)|浏览(147)

我有一个问题。我需要添加第二个功能到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)

nbysray5

nbysray51#

要准确理解你的意思并不容易。你能提供更多的细节吗?一个图表或带注解的屏幕截图会有所帮助。
如果你想在导入屏幕中有一个额外的表单字段,你可以在上传中为每个城市分配 * 相同 * 的区域,那么这是可能的,文档中有一个你可以复制的例子。
但是,如果你想能够修改界面中的每个城市,这将是一个很大的困难。

相关问题