Gra*_*ant 12 python django django-admin
我尝试使用python在Django中添加搜索字段.以下是我使用过的代码.
# admin.py file
from django.db import models
from blog.models import Blog
from django.contrib import admin
admin.site.register(Blog)
class Blog(models.Model):
title = models.CharField(max_length=60)
body = models.TextField()
created = models.DateTimeField("Date Created")
updated = models.DateTimeField("Date Updated")
def __unicode__(self):
return self.title
class Comment(models.Model):
body = models.TextField()
author = models.CharField(max_length=60)
created = models.DateTimeField("Date Created")
updated = models.DateTimeField("Date Updated")
post = models.ForeignKey(Blog)
def __unicode__(self):
return self.body
class CommentInline(admin.TabularInline):
model = Comment
class BlogAdmin(admin.ModelAdmin):
list_display = ('title','created', 'updated')
search_fields = ['title','body']
list_filter = ('Date Created','Date Updated')
inlines = [CommentInline]
class CommentAdmin(admin.ModelAdmin):
list_display = ('post','author','body_first_60','created','updated')
list_filter = ('Date Created','Date Updated')
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下代码为标题和正文添加search_fields.
class BlogAdmin(admin.ModelAdmin):
. . .
search_fields = ('title','body')
. . .
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我看不到任何搜索框.这是为什么 ?我想要你的帮助.我只是个初学者.谢谢!
And*_*dge 30
搜索字段应该是列表,而不是元组.
class BlogAdmin(admin.ModelAdmin):
. . .
search_fields = ['title','body']
. . .
Run Code Online (Sandbox Code Playgroud)
然后确保将此管理对象与模型相关联.
admin.site.register(Blog, BlogAdmin)
Run Code Online (Sandbox Code Playgroud)
编辑:
从上面来说很难说,但你应该考虑从models.py导入模型,而不是在admin.py文件中重新定义它们.再次,看起来这就是你正在做的事情.
admin.py:
from django.db import models
from blog.models import Blog
from django.contrib import admin
class CommentInline(admin.TabularInline):
model = Comment
class BlogAdmin(admin.ModelAdmin):
list_display = ('title','created','updated',)
search_fields = ['title','body',]
list_filter = ('Date Created','Date Updated',)
inlines = [CommentInline,]
class CommentAdmin(admin.ModelAdmin):
list_display = ('post','author','body_first_60','created','updated',)
list_filter = ('Date Created','Date Updated',)
admin.site.register(Blog, BlogAdmin)
Run Code Online (Sandbox Code Playgroud)
models.py
from django.db import models
class Blog(models.Model):
title = models.CharField(max_length=60)
body = models.TextField()
created = models.DateTimeField("Date Created")
updated = models.DateTimeField("Date Updated")
def __unicode__(self):
return self.title
class Comment(models.Model):
body = models.TextField()
author = models.CharField(max_length=60)
created = models.DateTimeField("Date Created")
updated = models.DateTimeField("Date Updated")
post = models.ForeignKey(Blog)
def __unicode__(self):
return self.body
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23762 次 |
最近记录: |