标签: django-admin

如何在django管理界面中添加带超链接的自定义列?

我有一个django管理界面,在模型列表中我想要一个自定义列,它将是一个使用其中一个字段值的超链接.基本上,模型的一个字段是一个url,我希望该列在可点击的超链接中包含该URL.此链接需要在其前面添加其他URL作为模型字段中的相对路径.

django django-admin

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

强制转换为Unicode:需要字符串或缓冲区,在django admin中渲染时找到NoneType

很长一段时间我都有这个错误,但无法弄清楚:

渲染时捕获TypeError:强制转换为Unicode:需要字符串或缓冲区,找到NoneType

当我尝试在我的一个模型上添加或修改时,它发生在管理员中(显示工作正常)

这是模型:

class PS(models.Model):
    id_ps = models.IntegerField(null=True)
    client = models.ForeignKey(Client, null=True, blank=True)
    nom_du_site = models.CharField(max_length=250)
    rue_livraison = models.TextField(null=True)
    complement_adresse = models.TextField(null=True)
    code_postal_livraison = models.CharField(max_length=50, null=True)
    ville_livraison = models.CharField(max_length=200, null=True)
    pays_livraison = models.CharField(max_length=200, null=True)
    distributeur = models.CharField(max_length=50, null=True)
    tarif = models.CharField(max_length=250, null=True)
    type_tarif = models.CharField(max_length=50, null=True)
    type_installation = models.CharField(max_length=50, null=True)

    def __unicode__(self):
        return self.nom_du_site

    @property
    def pce(self):        
        try:
            return PCE.objects.filter(ps=self)[0]
        except IndexError:
            return
    #    
    def get_pce(self):
        from pce.models import PCE
        return PCE.objects.filter(ps=self).exclude(frequence='6M')
    #
    def get_pce_6m(self):
        from pce.models import PCE …
Run Code Online (Sandbox Code Playgroud)

python django django-admin

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

我可以在django admin中创建list_filter,只显示引用的ForeignKeys吗?

我有一个django应用程序,它有两个这样的模型:

class MyModel(models.Model):
    name = models.CharField()
    country = models.ForeignKey('Country')

class Country(models.Model):
    code2 = models.CharField(max_length=2, primary_key=True)
    name = models.CharField()
Run Code Online (Sandbox Code Playgroud)

管理类MyModel看起来像这样:

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('name', 'country',)
    list_filter = ('country',)
admin.site.register(models.MyModel, MyModelAdmin)
Run Code Online (Sandbox Code Playgroud)

Country表包含约250个国家.某些MyModel实例实际上只引用了少数几个国家.

问题是django admin 的列表过滤器列出了过滤器面板中的所有国家/地区.列出所有国家(而不仅仅是那些被实例引用的国家)在这种情况下几乎无法实现列表过滤器的目的.

是否有一些只显示MyModel列表过滤器中作为选项引用的国家/地区?(我使用Django 1.3.)

django django-admin

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

创建django admin后,获取站点匹配查询不存在错误

我正在通过标准的Django教程为应用程序创建管理员.在设置中评论管理相关的东西并运行syncdb后,我收到此消息:

DoesNotExist at /admin/ Site matching query does not exist.
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

python django django-admin django-sites

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

如何在django-admin中隐藏一些字段?

class Book(models.Model):
    title = models.CharField(..., null=True)
    type = models.CharField(...)
    author = models.CharField(...)
Run Code Online (Sandbox Code Playgroud)

我在models.py中有一个简单的类.在管理员中,我希望在保存的书的类型为1时隐藏书的标题(在书的详细信息表格中).如何以最简单的方式进行?

django django-admin

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

Django Admin Show Image来自Imagefield

虽然我可以在list_display中显示上传的图像,但是可以在每个模型页面上执行此操作(如更改模型所获得的页面)?

快速样本模型将是:

Class Model1(models.Model):
    image = models.ImageField(upload_to=directory)
Run Code Online (Sandbox Code Playgroud)

默认管理员显示上传图像的网址,但不显示图片本身.

谢谢!

django django-admin

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

模型没有出现在django admin中

我已经为我自己的基金停止了几个django应用程序和东西,到目前为止一切都运行良好.

现在我刚刚创建了新项目(django 1.2.1)并且从第一时刻就遇到了麻烦.

我创建了新的应用程序 - 游戏和新模型游戏.我创建了admin.py并将相关内容放入其中.跑到syncdb然后去检查管理员.模型没有出现在那里.

我继续检查并重新检查并阅读以前类似的线程:已 注册的模型未显示在管理员 Django App中未显示在管理界面中

但就我所知,他们也不帮助我.也许其他人可以为我指出这一点.

游戏应用中的models.py:

# -*- coding: utf-8 -*-
from django.db import models

class Game(models.Model):
      type = models.IntegerField(blank=False, null=False, default=1)
      teamone = models.CharField(max_length=100, blank=False, null=False)
      teamtwo = models.CharField(max_length=100, blank=False, null=False)
      gametime = models.DateTimeField(blank=False, null=False)
Run Code Online (Sandbox Code Playgroud)

游戏应用中的admin.py:

# -*- coding: utf-8 -*-
from jalka.game.models import Game
from django.contrib import admin

class GameAdmin(admin.ModelAdmin):
      list_display    = ['type', 'teamone', 'teamtwo', 'gametime']

admin.site.register(Game, GameAdmin)
Run Code Online (Sandbox Code Playgroud)

project settings.py:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)

ROOT_URLCONF = 'jalka.urls' …
Run Code Online (Sandbox Code Playgroud)

django django-admin

53
推荐指数
8
解决办法
4万
查看次数

使用django admin进行一对多内联选择

我有一个标准的多对一关系设置.有很多字段,但就我们的目的而言,相关模型是:

class Class(models.Model):
    name = models.CharField(max_length=128)

class Student(models.Model):
    class = models.ForeignKey(Class)
    name = models.CharField(max_length=128)
    address = models.CharField(max_length=128)
    # ...etc
Run Code Online (Sandbox Code Playgroud)

我创建了一个管理员,它运行得很好.在我编辑学生时,它甚至可以自动设置班级.但是,当我去创建/编辑一个类时,我得到的只是名称的输入框.

有没有办法添加一个框/字段,可以从Class管理页面添加学生作为Class的成员?我可以在线创建一个表单,但那就是创建新的学生.我已经创建了所有学生,我只是在寻找一种快速方法,将多个现有学生添加到不同的班级.

python django django-models django-admin

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

在Django Admin中为list_filter创建自定义过滤器

我想为django admin而不是普通的'is_staff'和'is_superuser'制作自定义过滤器.我在Django docs中读过这个list_filter.自定义过滤器以这种方式工作:

from datetime import date

from django.utils.translation import ugettext_lazy as _
from django.contrib.admin import SimpleListFilter

class DecadeBornListFilter(SimpleListFilter):
    # Human-readable title which will be displayed in the
    # right admin sidebar just above the filter options.
    title = _('decade born')

    # Parameter for the filter that will be used in the URL query.
    parameter_name = 'decade'

    def lookups(self, request, model_admin):
        """
        Returns a list of tuples. The first element in each
        tuple is the coded value for …
Run Code Online (Sandbox Code Playgroud)

django django-admin

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

Django admin - 内联内联(或者,一次三个模型编辑)

我有一组看起来像这样的模型:

class Page(models.Model):
    title = models.CharField(max_length=255)

class LinkSection(models.Model):
    page = models.ForeignKey(Page)
    title = models.CharField(max_length=255)

class Link(models.Model):
    linksection = models.ForeignKey(LinkSection)
    text = models.CharField(max_length=255)
    url = models.URLField()
Run Code Online (Sandbox Code Playgroud)

和一个看起来像这样的admin.py:

class LinkInline(admin.TabularInline):
    model = Link
class LinkSectionInline(admin.TabularInline):
    model = LinkSection
    inlines = [ LinkInline, ]
class PageAdmin(admin.ModelAdmin):
    inlines = [ LinkSectionInline, ]
Run Code Online (Sandbox Code Playgroud)

我的目标是获得一个管理界面,让我可以在一个页面上编辑所有内容.这个模型结构的最终结果是生成的东西生成一个看起来或多或少的视图+模板:

<h1>{{page.title}}</h1>
{% for ls in page.linksection_set.objects.all %}
<div>
    <h2>{{ls.title}}</h2>
    <ul>
         {% for l in ls.link_set.objects.all %}
        <li><a href="{{l.url}}">{{l.title}}</a></li>
         {% endfor %}
    </ul>
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

据我所知,我知道Django管理员中的inline-in-an-inline技巧失败了.有谁知道允许这种三级模型编辑的方法?提前致谢.

python django django-models django-admin inlines

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