我定义了几个模型:期刊,卷,volume_scanInfo等.
日志可以拥有更多卷,而卷可以拥有更多scanInfo.
我想做的是:
所以我希望有类似的东西:
Journal #1 admin page
[name]
[publisher]
[url]
.....
list of volumes inline
[volume 10] [..(other fields)..] <a href="/link/to/volume/10">Full record</a>
[volume 20] [..(other fields)..] <a href="/link/to/volume/20">Full record</a>
Run Code Online (Sandbox Code Playgroud)
然后
Volume #20 admin page
[volume number]
[..(other fields)...]
......
list of the scan info inline
[scan info 33] [..(other fields)..] <a href="/link/to/scaninfo/33">Full record</a>
[scan info 44] [..(other fields)..] <a href="/link/to/scaninfo/44">Full record</a>
Run Code Online (Sandbox Code Playgroud)
我尝试做的是定义一个模型方法,该方法创建代码并尝试在管理中定义"volume inline"的类中使用它,但它不起作用.
换一种说法
模型"卷"有类似于:
def selflink(self):
return '<a href="/admin/journaldb/volume/%s/">Full record</a>' % self.vid
selflink.allow_tags = True
Run Code Online (Sandbox Code Playgroud)
和 …
好吧,我有一个相当简单的设计.
class Update(models.Model):
pub_date = models.DateField()
title = models.CharField(max_length=512)
class Post(models.Model):
update = models.ForeignKey(Update)
body = models.TextField()
order = models.PositiveIntegerField(blank=True)
class Media(models.Model):
post = models.ForeignKey(Post)
thumb = models.ImageField(upload_to='frontpage')
fullImagePath = models.ImageField(upload_to='frontpage')
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法允许用户在一个页面上创建更新?
我想要的是让用户能够进入管理界面,添加新的更新,然后在编辑更新时添加一个或多个帖子,每个帖子都有一个或多个媒体项目.此外,我希望用户能够在更新中重新排序帖子.
我目前的尝试在admin.py中有以下内容:
class MediaInline(admin.StackedInline):
model = Media
class PostAdmin(admin.ModelAdmin):
inlines = [MediaInline,]
Run Code Online (Sandbox Code Playgroud)
这让用户添加一个新的Post项目,选择相关的Update,将Media项目添加到它,然后点击save - 这很好.但是没有办法在一个地方看到属于给定更新的所有帖子,这反过来意味着你不能在更新中浏览帖子.这对最终用户来说真的很混乱.
救命?
我正在尝试解决问题,但我不知道如何面对它.我需要一些帮助 :-)
我有这样的模型层次结构:
class Task(models.Model):
name = models.CharField(max_length=255)
number_of_steps = models.IntegerField()
class StepGroup(models.Model):
task = models.ForeignKey(Task)
init_date = models.DateField()
class Step(models.Model):
group = models.ForeignKey(StepGroup)
name = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
我必须编写一个对话框,在其中创建一些步骤组.InlineFormSet看起来可行,但由于嵌套有两个层次,我不知道如何做到这一点.
此外,我需要通常的表单形式:错误控制(form.name_of_field.errors),编辑任务时的自动填充等,所以使用javascript手动执行它,服务器端处理POST请求将太复杂和错误 - 易于.
这是我需要表单的方式(每个组中的步骤数由Task模型中的"number_of_steps"字段设置):
+-----------------------------------+
| STEP GROUP 1 |
| |
| Init date: _____________ |
| |
| Step 1: ________________ |
| Step 2: ________________ |
| Step 3: ________________ |
| |
+-----------------------------------+
| STEP GROUP 2 |
| |
| Init date: _____________ |
| |
| …Run Code Online (Sandbox Code Playgroud) 如果这太复杂或者不是正确的做事方式,请随时将我与其他事物联系起来或者告诉我我应该采取另一种方式......
基本上,我正在开发一个有客户端的项目,每个项目都附加了任意数量的网站.因此,网站模型对客户端模型具有ForeignKey.网站管理页面非常深入,每个客户可能有10个或更多网站,所以我宁愿不将它们全部显示为内联,因为这看起来非常混乱和疯狂.
我想要的是,当你进入管理面板并点击客户端时,你会被带到更改页面,在那里它有你为客户编辑的基本内容,然后内联实际链接到每个客户端.客户的网站管理页面.像这样:
名称:
地址:
电话:
链接编辑网站1
链接编辑网站2
链接编辑网站3
链接编辑网站4
链接编辑网站5