标签: django-admin

你可以在Django Admin应用程序中更改字段标签吗?

正如标题所示.我希望能够更改管理应用程序中单个字段的标签.我知道Form.field属性,但是如何让我的Model或ModelAdmin传递这些信息呢?

python django django-forms django-admin

45
推荐指数
7
解决办法
5万
查看次数

将模型范围的帮助文本添加到django模型的管理表单中

在我的django应用程序中,我希望能够为我的一些模型添加自定义帮助文本到管理员更改表单.注意我不是在谈论help_text我可以在各个字段上设置的字段特定属性.例如,在变化形式的顶部,My_ModelMy_App我想能够添加一些HTML,说:"有关我的模型的更多信息,请参阅http://example.com为了提供一个链接到一个"内部文档维基.

有没有简单的方法来实现这一点,还是我需要为模型创建自定义管理表单?如果是这样,你能举个例子说明我会怎么做吗?

python django django-models django-admin

45
推荐指数
2
解决办法
2万
查看次数

Django Admin嵌套内联

我需要一个嵌套的django admin inline,我可以在下面的其他内联中包含日期字段内联.

我有以下型号:

class Person(models.Model):
     name = models.CharField(max_length=200)
     id_no = models.IntegerField()

class Certificate(models.Model):
     cerfificate_no = models.CharField(max_length=200)
     certificate_date = models.DateField(max_length=100)
     person = models.ForeignKey(Person)
     training = models.CharField(max_length=200)

class Training_Date(models.Model):
      date = models.DateField()
      certificate = models.ForeignKey(Certificate)
Run Code Online (Sandbox Code Playgroud)

以及以下管理员:

class CertificateInline(admin.StackedInline):
    model = Certificate

class PersonAdmin(admin.ModelAdmin):
     inlines = [CertificateInline,]
admin.site.register(Person,PersonAdmin)
Run Code Online (Sandbox Code Playgroud)

但我需要将Training_Date模型包含在内联中,这是证书管理员内联的一部分.

任何的想法 ?

django django-models django-admin

45
推荐指数
7
解决办法
3万
查看次数

Django:从ModelAdmin中访问模型实例?

我在网上商店应用程序中有一个Orders模型,它有一个自动递增的主键和一个自己的外键,因为订单可以拆分成多个订单,但必须保持与原始订单的关系.

class Order(models.Model):
    ordernumber = models.AutoField(primary_key=True)
    parent_order = models.ForeignKey('self', null=True, blank=True, related_name='child_orders')
    # .. other fields not relevant here
Run Code Online (Sandbox Code Playgroud)

我已经为管理站点注册了OrderAdmin类.对于详细视图,我已经包含parent_orderfieldsets属性中.当然,默认情况下,它会列出选择框中的所有订单,但这不是所需的行为.相反,对于没有父订单的订单(即未从另一个订单拆分; parent_order是NULL/None),不应显示任何订单.对于已拆分的订单,此应仅显示单个父订单.

有一个相当新的ModelAdmin方法formfield_for_foreignkey,这似乎是完美的,因为查询集可以在其中进行过滤.想象一下,我们正在查看订单#11234的详细视图,该订单已从订单#11208拆分.代码如下

def formfield_for_foreignkey(self, db_field, request, **kwargs):
    if db_field.name == 'parent_order':
        # kwargs["queryset"] = Order.objects.filter(child_orders__ordernumber__exact=11234)
        return db_field.formfield(**kwargs)
    return super(OrderAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)
Run Code Online (Sandbox Code Playgroud)

注释行在Python shell中运行时返回,返回单项查询集,其中包含#11234的#11208订单以及可能已从中拆分的所有其他订单.

当然,我们不能在那里硬编码订单号.我们需要引用ordernumber订单实例的字段,我们正在查看其详细信息页面.像这样:

kwargs["queryset"] = Order.objects.filter(child_orders__ordernumber__exact=?????)
Run Code Online (Sandbox Code Playgroud)

我发现没有办法替换????? 参考"当前"订单实例,我挖得很深.selfinside formfield_for_foreignkey指的是ModelAdmin实例,虽然它确实有一个model属性,但它不是订单模型实例(它是ModelBase引用; self.model()返回一个实例,但它的ordernumber是None).

一个解决方案可能是从request.path(/ admin/orders/order/11234 /)中提取订单号,但这真的很难看.我真的希望有更好的方法.

django modeladmin django-admin

44
推荐指数
2
解决办法
2万
查看次数

在Save上操作​​Django管理面板中的数据

好的,所以这里是瘦的:

# models.py
class Article( models.Model ):
    title           = models.CharField( max_length = 255 )
    author          = models.ForeignKey( User )
    published_at    = models.DateTimeField( auto_now_add = True )
    body            = models.TextField( )

    def __unicode__( self ):
        return self.title

# admin.py
from hpccoe.news.models import Article
from django.contrib import admin
from django import forms
from django.forms import widgets

class ArticleAdminForm( forms.ModelForm ):    
    title   = forms.CharField( max_length = 255, required = True )
    body    = forms.CharField( required = True, widget = widgets.Textarea )

class ArticleAdmin( …
Run Code Online (Sandbox Code Playgroud)

django foreign-keys save django-admin

43
推荐指数
2
解决办法
3万
查看次数

在django的admin(仅显示列表)中禁用编辑对象的链接?

在Django的管理员中,我想禁用 "选择要更改的项目"页面上提供的链接,以便用户无法去任何地方编辑项目.(我将限制用户可以对此列表执行的操作到一组下拉操作 - 没有实际编辑字段).

我看到Django能够选择显示链接的字段,但是,我看不出我怎么也没有.

class HitAdmin(admin.ModelAdmin):
    list_display = ('user','ip','user_agent','hitcount')
    search_fields = ('ip','user_agent')
    date_hierarchy = 'created'
    list_display_links = [] # doesn't work, goes to default
Run Code Online (Sandbox Code Playgroud)

任何想法如何获取我的对象列表没有任何链接编辑?

python django modeladmin django-admin

43
推荐指数
6
解决办法
3万
查看次数

django的员工,管理员,超级用户有什么区别?

Django有超级用户,员工,管理员......

超级用户和工作人员都在django.contib.auth.models.UserManager.然后有createsuperuser命令django-admin.

好吧,有管理员应用......有什么区别?

django django-admin user-permissions

42
推荐指数
3
解决办法
3万
查看次数

如果项目文件夹已存在,则强制django-admin startproject

我想在现有的文件夹中启动新的django项目,显然得到了

CommandError: '/home/user/projectfolder' already exists.
Run Code Online (Sandbox Code Playgroud)

有没有办法强制startproject命令在现有文件夹中创建项目?我在该文件夹和git文件夹中有一些重要的数据,所以我不想将它移动到某个地方,然后将其移回.

python django django-admin

40
推荐指数
2
解决办法
1万
查看次数

有没有一种简单的方法来获取django中用户的组名

我在django.contrib.auth.Userdjango.contrib.auth.Group的帮助下尝试使用Code

for g in request.user.groups:
    l.append(g.name)
Run Code Online (Sandbox Code Playgroud)

但那失败了,我收到了以下错误:

TypeError at /
'ManyRelatedManager' object is not iterable
Request Method: GET
Request URL:    http://localhost:8000/
Exception Type: TypeError
Exception Value:    
'ManyRelatedManager' object is not iterable
Exception Location: C:\p4\projects\...\users.py in permission, line 55
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

python django django-admin

38
推荐指数
4
解决办法
5万
查看次数

Django Admin CSS缺失

我一直在搞乱新的collectstatic命令,并让它适用于我的普通页面.也就是说,我可以在这个位置加载我的CSS http://localhost:8000/static/css/main.css.但是,我的django管理员的CSS似乎没有显示出来.

当我导航到admin css位置时http://localhost:8000/static/admin/css/base.css,我找不到404页面,但出现以下错误:/home/nai/GitProjects/cats/django-trunk/django/contrib/admin/media/css/base.css" does not exist.看着django-trunk,我从来没有/home/nai/GitProjects/cats/django-trunk/django/contrib/admin/media/开始使用该文件夹.

这有点奇怪吗?

在任何情况下,在我的静态文件夹中,都有一个admin文件夹,其中包含随附的css,img和js文件夹,这些文件夹是在我运行collectstatic时创建的,而base.css的url似乎指向该位置.

这发生在我的django开发服务器上.这里有一些片段可以帮助捕获bug:

网址

 33 # In order for Dev Server to serve media files for the frontend site.
 34 urlpatterns += staticfiles_urlpatterns()
 35 
 36 try:
 37     if settings.DEBUG: # defined in manage.py when the first arg is "runserver"
 38         urlpatterns += patterns('',
 39         (r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),
 40         (r'^media-admin/(?P<path>.*)$', 'django.views.static.serve',{'document_root': os.path.join(settings.MEDIA_ROOT, '..', settings.ADMIN_MEDIA_PREFIX)}),
 41         )
 42 except NameError:
 43     pass
Run Code Online (Sandbox Code Playgroud)

我认为这可能与我的URLS文件中的第40行有关,但将media-admin更改为static/admin没有帮助.

设置

     58 ADMIN_MEDIA_PREFIX …
Run Code Online (Sandbox Code Playgroud)

django django-admin

38
推荐指数
5
解决办法
5万
查看次数