我试图将一些CSS和JS文件包含在文档中指定的对象的更改形式中.这是我的文件:
admin.py
#...
class ScribPartAdmin(admin.ModelAdmin):
class Media:
css = {
'all': ('mymarkup.css',)
}
js = ('mymarkup.js',)
admin.site.register(ScribPart, ScribPartAdmin)
#...
Run Code Online (Sandbox Code Playgroud)
models.py
class ScribPart(models.Model):
part = models.IntegerField()
sequence = models.IntegerField()
file = models.FileField(upload_to='audio/')
text = models.TextField()
#...
Run Code Online (Sandbox Code Playgroud)
我的2个媒体文件包含在change_list模板中,但不包含在模板中change_form.
问题是:为什么?
当没有值时,是否有一种在管理中显示默认值的djangtastic方法?像'不适用',但不是要保存到数据库?
当我将下面模型中的所有字段设置为只在管理员中读取时,前端显示看起来像底部的图像.它看起来像是应该有一个价值或一个盒子或东西.如果没有一种简单的方法来完成我正在寻找的东西,那么还有另一种解决方案可以让前端管理员更清楚地为用户服务吗?
class Package(models.Model):
packaging_format = models.CharField(max_length=40)
package_delivery_pattern = models.CharField(max_length=30, blank=True)
package_delivery_comments = models.CharField(max_length=250, blank=True)
package_manifest_filename = models.CharField(max_length=50)
package_description = models.CharField(max_length=250, blank=True)
package_naming_pattern = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
显示管理员的字段截图:

我有一个奇怪的难题,我需要在virtual-env中使用python 3.4在Django 1.8.4中获得一些帮助。
我在2个不同的应用程序中有2个模型...如下,其中包含多个外键引用。
库存应用
class InventoryItem(models.Model):
item_unique_code = models.CharField(max_length=256, blank=False, null=False)
category = models.CharField(max_length=256, blank=False, null=False,choices=[('RAW','Raw Material'),('FG','Finished Good'),('PKG','Packaging')])
name = models.CharField(max_length=64, blank=False, null=False)
supplier = models.CharField(max_length=96, blank=False,null=False)
approved_by = models.CharField(max_length=64, editable=False)
date_approved = models.DateTimeField(auto_now_add=True, editable=False)
comments = models.TextField(blank=True, null=True)
def __str__(self):
return "%s | %s | %s" % (self.item_unique_code,self.name,self.supplier)
class Meta:
managed = True
unique_together = (('item_unique_code', 'category', 'name', 'supplier'),)
Run Code Online (Sandbox Code Playgroud)
食谱应用
class RecipeControl(models.Model):
#recipe_name choice field needs to be a query set of all records containing "FG-Finished Goods"
recipe_name …Run Code Online (Sandbox Code Playgroud) 如何在django admin的list_filter中的每个过滤器之后显示相关对象的计数?
class Application(TimeStampModel):
name = models.CharField(verbose_name='CI Name', max_length=100, unique=True)
description = models.TextField(blank=True, help_text="Business application")
class Server(TimeStampModel):
name = models.CharField(max_length=100, verbose_name='Server Name', unique=True)
company = models.CharField(max_length=3, choices=constants.COMPANIES.items())
online = models.BooleanField(default=True, blank=True, verbose_name='OnLine')
application_members = models.ManyToManyField('Application',through='Rolemembership',
through_fields = ('server', 'application'),
)
class Rolemembership(TimeStampModel):
server = models.ForeignKey(Server, on_delete = models.CASCADE)
application = models.ForeignKey(Application, on_delete = models.CASCADE)
name = models.CharField(verbose_name='Server Role', max_length=50, choices=constants.SERVER_ROLE.items())
roleversion = models.CharField(max_length=100, verbose_name='Version', blank=True)
Run Code Online (Sandbox Code Playgroud)
@admin.register(Server)
class ServerAdmin(admin.ModelAdmin):
save_on_top = True
list_per_page = 30
list_max_show_all = 500
inlines = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下Model和ModelAdmin类将搜索添加到我的模型管理列表页面:
models.py
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User)
country = CountryField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
admin.py
from django.contrib import admin
from models import UserProfile
class UserProfileAdmin(admin.ModelAdmin):
list_display = ('user','country')
search_fields = ['user']
Run Code Online (Sandbox Code Playgroud)
但是在尝试访问管理面板中的UserProfile时出现以下错误:
at /admin/profiles/userprofile/ Related Field has invalid
lookup: icontains
Run Code Online (Sandbox Code Playgroud)
我也尝试过以下方法:
search_fields = ['user_username']
Run Code Online (Sandbox Code Playgroud)
和
search_fields = ['user_name']
def user_name(self,obj):
return obj.user.username
Run Code Online (Sandbox Code Playgroud)
有解决方案吗
我有类Invoice,其中(简化)具有以下属性:
class Invoice(models.Model)
number = models.CharField(verbose_name="Number", max_length=16)
issue_date = models.DateTimeField(verbose_name="Issue date", default=datetime.now)
total = models.FloatField(verbose_name="Total", blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
然后,我有InvoiceLine类,它代表发票可以拥有的行/行:
class InvoiceLine(models.Model):
invoice = models.ForeignKey(Invoice, verbose_name="Invoice")
description = models.CharField(verbose_name="Description", max_length=64)
line_total = models.FloatField(verbose_name="Line total")
Run Code Online (Sandbox Code Playgroud)
InvoiceLine是Invoice的内联,我想要实现的是,当在管理员中有人用发票线(一个或多个)保存发票时,计算发票总额.我试图通过覆盖方法保存来做到这一点:
class Invoice(models.Model)
number = models.CharField(verbose_name="Number", max_length=16)
issue_date = models.DateTimeField(verbose_name="Issue date", default=datetime.now)
total = models.FloatField(verbose_name="Total", blank=True, null=True)
def save(self, *args, **kwargs):
invoice_lines = InvoiceLine.objects.filter(invoice=self.id)
self.total = 0
for line in invoice_lines:
self.total=self.total+line.line_total
super(Invoice, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
问题是,当我在InvoiceLine中添加元素时,第一次保存并调用functionsave时,内联(InvoiceLine)中的新元素尚未存储,所以当我这样做时InvoiceLine.objects.filter(invoice=self.id),它们不会被考虑在内.因此,这种方法的唯一方法是节省两次.我也尝试过:
def save(self, *args, **kwargs):
super(Invoice, self).save(*args, **kwargs)
invoice_lines = InvoiceLine.objects.filter(invoice=self.pk) …Run Code Online (Sandbox Code Playgroud) django django-models django-admin django-modeladmin django-admin-actions
我有一个ModelAdmin类,其内联类型为TabularInline。我想为TabularInline的每一行在其左侧显示一个行号。当新记录添加到内联时,该数字将增加,并且在编辑表单时将显示该数字。
我更喜欢行号不是内联数据模型的一部分,而应该在每次向内联块添加或显示新记录时生成。我不需要将此号码保留在数据库中。仅在ModelAdmin类的另一个字段上提供参考。
我是django的新手,我似乎无法弄清楚如何实现这一目标。
任何建议,将不胜感激。
问候,里克