相关的查找字段外键在内联Django中不起作用

时间:2012-06-13 15:13:48

标签: django foreign-keys

我的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。

2 个答案:

答案 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)

谢谢!

编辑:

解决!需要数据库中的对象。

相关问题