我的tabularinline字段存在问题。我有这样的模型
class Product(models.Model):
....
class Pemesanan(models.Model):
produks = models.ManyToManyField(Product, verbose_name=u"Kode Produk", through='Foo')
class Foo(models.Model):
product = models.ForeignKey(Product)
...
Class Foo是一个具有Pemesanan和Class Product类的中间类(manytomany field)。它有Pemesanan级别的外键领域。 Foo类在change_form模板中显示为tabularinline,如http://upload.ui.ac.id/?a=d&i=845380
但我的问题是,现场产品不会显示为相关的查找字段,因为它显示为普通表单(不是内联)。这是我的管理员
class FooInline(admin.TabularInline):
model = Foo
extra = 0
allow_add = True
class PemesananAdmin(admin.ModelAdmin):
....
search_fields = ['produks']
raw_id_fields = ('produks',)
related_lookup_fields = {
'm2m': ['produks'],
}
inlines = [
FooInline,
]
exclude = ('produks',)
我使用了自动完成功能,但这里实现起来似乎很难,因为教程不完整。那么有没有办法让我的相关查找工作在我的tabularinline?非常感谢你:D。
答案 0 :(得分:3)
所以,是的,我想我确实误解了你的要求。您只是希望相关的查找弹出窗口选择每个内联中的产品,而不是选择框。您已经了解raw_id_fields
;问题是您需要在内联模型管理员中指定,而不是主要的父模型管理员。
class FooInline(admin.TabularInline):
model = Foo
extra = 0
allow_add = True
raw_id_fields = ('product',)
答案 1 :(得分:0)
我有相同的情况,但我的raw_id_fields在admin.TabularInline中,问题出在放大镜按钮上,没有显示,但输入已更改:
# admin
class ApartmentInline(admin.TabularInline):
model = Apartment
max_num = 12
extra = 1
raw_id_fields = ('propaganda',)
class BuildingAdmin(admin.ModelAdmin):
inlines = [ApartmentInline]
# models
class Apartment(models.Model):
status = models.ForeignKey(Status)
building = models.ForeignKey(Building)
propaganda = models.ForeignKey(Propaganda)
谢谢!
编辑:
解决!需要数据库中的对象。