【发布时间】:2020-07-30 05:47:06
【问题描述】:
我有两个基本模型,产品和图像,后者通过外键分配给产品:
class Image(models.Model):
name = models.CharField(max_length=100)
image = models.ImageField(upload_to=sku_dir)
description = models.CharField(max_length=100, default='', blank=True)
product = models.ForeignKey(product.Product, on_delete=models.CASCADE, related_name='images')
在管理员中,我使用内联图像模型:
class ImageInline(admin.TabularInline):
model = image.Image
extra = 1
@admin.register(product.Product)
class ProductAdmin(admin.ModelAdmin):
search_fields = ['sku', 'name']
list_display = ['sku', 'name', 'price']
autocomplete_fields = ['genus']
inlines = [ImageInline,]
我想在图像中添加一个额外的字段来控制默认显示哪个图像 - 理想情况下,产品管理表单上的每个图像都会有一个单选按钮,并且一次只能选择一个图像.
由于我仍在学习 Django,我觉得有一种简单的方法可以做到这一点,但我不知道 Django 特定的正确术语来搜索答案(类似于我花了一段时间才发现“内联" 是一个术语,用于在另一个模型中显示一个模型的形式)。
如何为每个图像添加一个单选按钮,只允许在内联表单中选择一个图像?
【问题讨论】:
-
@Jim 我想我认为这将是一个现有的模式,但它似乎不是。我想避免做任何非常规的事情,单选按钮内置了“防白痴”,但我想我只需要使用 IntegerField 作为位置值,这很容易出现用户输入错误,但可以用开箱即用的功能。同样有趣的是,我搜索了一页又一页的 SO 问题,但从未看到您链接的那个。
-
我会稍微琢磨一下,看看能不能想出点什么……
标签: django django-models