Python Django管理员搜索和编辑外部字段
我有一个关于Django管理员的两部分问题 首先,我有一个Django模型Python Django管理员搜索和编辑外部字段,python,django,django-admin,Python,Django,Django Admin,我有一个关于Django管理员的两部分问题 首先,我有一个Django模型Classified,它有一个来自另一个表Address的外键字段。在设置数据时,我对任何字段都没有问题,所有字段都正确保存 但是,如果我想编辑Classified中条目中的外部字段,它不会在字段中显示旧的/现有的数据。相反,它在打开的弹出窗口中显示空字段 如何让字段在单击+时显示现有数据,以便编辑正确的信息 其次,我肯定在Django Admin中看到过搜索字段。我弄错了吗?我有没有办法在管理面板中实现搜索?我有超过20
Classified
,它有一个来自另一个表Address
的外键字段。在设置数据时,我对任何字段都没有问题,所有字段都正确保存
但是,如果我想编辑Classified
中条目中的外部字段,它不会在字段中显示旧的/现有的数据。相反,它在打开的弹出窗口中显示空字段
如何让字段在单击+
时显示现有数据,以便编辑正确的信息
其次,我肯定在Django Admin中看到过搜索字段。我弄错了吗?我有没有办法在管理面板中实现搜索?我有超过200万条记录需要不时更新和删除。手动浏览管理中的所有页面并删除或编辑这些页面非常麻烦
添加型号代码:
Classified
class Classified(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=256)
contact_person = models.CharField(max_length=300, blank=True)
email = models.CharField(max_length=100, blank=True)
address = models.ForeignKey(Address)
subcategory = models.ForeignKey(Subcategory)
地址
class Address(models.Model):
id = models.AutoField(primary_key=True)
build_add = models.CharField(max_length=255)
street_add = models.CharField(max_length=255)
area = models.CharField(max_length=255)
city = models.ForeignKey(Cities)
+
的意思就是-添加相关对象的新实例,并将您正在编辑的对象与之关联。因为您要添加一个新对象,所以开始时它将为空。如果您希望能够从另一个对象的管理员处编辑现有的相关对象,则需要使用
在你的应用程序的admin.py
中,有如下内容:
from django.contrib import admin
from yourapp.models import Address, Classified
class AddressInline(admin.TabularInline):
model = Address
class ClassifiedAdmin(admin.ModelAdmin):
inlines = [AddressInline,]
admin.site.register(Classified, ClassifiedAdmin)
从那里添加搜索非常简单
...
class ClassifiedAdmin(admin.ModelAdmin):
inlines = [AddressInline,]
search_fields = [
'field_you_want_to_search',
'another_field',
'address__field_on_relation',
]
...
注意最后一条中的双下划线。这意味着您可以根据相关对象字段中的值进行搜索
编辑:是正确的,因为你的外键关系是错误的,这样做是错误的-你问题中显示的模型
分类将是内联的,而地址是主要的模型。这样做会给我一个没有外键的错误。编辑:我认为这也是因为地址有外键。似乎没有解决这个问题的办法,对吧?我将把模型代码发布到原始问题中,这应该不是问题。我有一个类似的模型在生产中运行得很好。取出内联线,查看搜索是否有效或抛出任何启发性错误。删除内联线后,搜索工作正常,没有错误。抱歉,我不确定我是否可以进一步提供帮助。您的模型不仅与我的工作模型几乎相同,实际上与django inlines文档中的模型非常相似!