ユーザモデルに150kのエントリがあります。 raw_id_fieldsなしでdjango-adminで使用している場合、すべてのエントリを外部キーの選択メニューとして読み込み中に問題が発生します。簡単に読み込むことができるように、または検索可能になるように別の方法がありますか?ForeignKeyのデフォルト選択を削除django adminのフィールド
私はこれらのモデルを上記のように定義しており、ProfileRecommendationモデルでForeignKeyとして使用されるUserモデルがあります。ユーザーモデルのデータベースエントリは、約150,000個のエントリで構成されています。私はこれらの外国のフィールドのためのデフォルトの選択オプションを望んでいません。代わりに、それらをフィルタリングして、ユーザテーブルのほんの少数のエントリをロードすることができます。オートコンプリートのように検索可能にする方法はありますか?
class ProfileRecommendationAdmin(admin.ModelAdmin):
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == "user":
kwargs["queryset"] = User.objects.filter(is_superuser=True)
return super(ProfileRecommendationAdmin,self).formfield_for_foreignkey(db_field, request, **kwargs)
または他の方法で上書きすることです:あなたはこのような何かが
formfield_for_foreignkeyメソッドを使用することができます
admin.py
class ProfileRecommendationAdmin(admin.ModelAdmin):
list_display = ('user', 'recommended_by', 'recommended_text')
raw_id_fields = ("user", 'recommended_by')
search_fields = ['user__username', 'recommended_by__username',]
admin.site.register(ProfileRecommendation, ProfileRecommendationAdmin)
models.py
class ProfileRecommendation(models.Model):
user = models.ForeignKey(User, related_name='recommendations')
recommended_by = models.ForeignKey(User, related_name='recommended')
recommended_on = models.DateTimeField(auto_now_add=True, null=True)
recommended_text = models.TextField(default='')
[django adminのForeignKeyフィールド](https://stackoverflow.com/questions/39441421/foreignkey-field-in-django-admin)の可能な複製 –