Django 中的自动完成字段

尝试在 Django 中设置 autocomplete_fields。


我有以下型号:


from django.db import models

 class Genre(models.Model):

   title = models.CharField(max_length=255)



class Movie(models.Model):

  title = models.CharField(max_length=255)

  year = models.IntegerField()

  time = models.CharField(max_length=255)

  director = models.CharField(max_length=255)

  genre = models.ManyToManyField(Genre)  

  image = models.ImageField(upload_to='images/')

  actors = models.TextField()

  summary = models.TextField()

admin.py:


from django.contrib import admin

from .models import Movie, Genre



class SettingAdmin(admin.ModelAdmin):

  search_fields = ['genre']



class MovieAdmin(admin.ModelAdmin):

  autocomplete_fields = ['genre']



admin.site.register(Movie, MovieAdmin)

admin.site.register(Genre)

错误信息:


Exception in thread django-main-thread:

Traceback (most recent call last):

File "c:\users\ali\appdata\local\programs\python\python38\lib\threading.py", line 932, in _ 

bootstrap_inner

self.run()

File "c:\users\ali\appdata\local\programs\python\python38\lib\threading.py", line 870, in run

self._target(*self._args, **self._kwargs)

File "C:\Users\Ali\Desktop\cinemaEnv\lib\site-packages\django\utils\autoreload.py", line 53, in 

wrapper

fn(*args, **kwargs)

File "C:\Users\Ali\Desktop\cinemaEnv\lib\site-packages\django\core\management\commands\runserver.py", 

line 117, in inner_run

self.check(display_num_errors=True)

File "C:\Users\Ali\Desktop\cinemaEnv\lib\site-packages\django\core\management\base.py", line 441, in 

check

raise SystemCheckError(msg)

django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:


ERRORS:

<class 'movies.admin.MovieAdmin'>: (admin.E040) ModelAdmin must define "search_fields", because it's 

 referenced by MovieAdmin.autocomplete_fields.

我使用 django.contrib.auth.models 中的用户模型尝试此代码并且它有效。我使用 django.contrib.auth.models 中的用户模型尝试此代码并且它有效。


神不在的星期二
浏览 172回答 1
1回答

波斯汪

正如错误消息所说:您需要在Genre admin 中定义“search_fields”,因为您使用autocomplete_fields = ['genre'],并且不要忘记向其注册 Genre 模型。class GenreAdmin(admin.ModelAdmin):&nbsp; search_fields = ['title']admin.site.register(Genre, GenreAdmin)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python