在Django中,我有一个modelform,它有一个字段,它是一个具有300k行的模型的ForeignKey值。 SelectBox不能按此比例工作。
管理界面中的raw_id_fields / ForeignKeyRawIdWidget正是我想要的,我让它适用于我自己的表单,从参考链接借用示例:
from django.contrib import admin
admin.autodiscover()
from django.contrib.admin.widgets import ForeignKeyRawIdWidget
from django import forms
from .models import Post, Photo
class PostForm(forms.ModelForm):
photo = forms.ModelChoiceField(
Photo.objects.all(),
widget=ForeignKeyRawIdWidget(Post._meta.get_field("photo").rel,admin.site)
)
唯一的问题是foreignkey查找弹出窗口的url是 http://mydomain.com/admin/photo/photo/?t=id&pop=1 因此,这需要管理员权限才能访问。 我想允许普通用户能够搜索/填充外键。 我应该怎么做,将一些管理应用程序代码复制/粘贴到我自己的应用程序中?
我的问题与此类似,但他们没有提及有关管理员权限问题的任何内容: raw_id_fields for modelforms
提前谢谢!