【发布时间】:2011-05-21 08:16:38
【问题描述】:
我的第一个问题对我帮助很大,所以我想我会继续问第二个问题。
我目前的(实践)项目是创建一个通用模型。以下是我目前所写的:
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Block(models.Model):
title = models.CharField(man_length=50)
#Make sure child classes have content defined!
#content = models.BooleanField(default=False)
owner = models.ForeignKey('User')
access = models.ManytoManyField('User', null=True)
links = models.ManytoManyField('self', null=True)
class Meta:
abstract = True
def __unicode__(self):
return self.title
class Text(Block)
content = models.TextField(max_length=100)
class URL(Block)
content = models.URLField()
class Email(Block)
content = models.EmailField()
请注意,我还没有实际测试过这个 - 我认为到目前为止我的逻辑不会奏效。
几个目标:
1) 这里的所有者指向区块的创建者。我认为这应该可行。
2) 访问权限应指向可以编辑块的用户(所有者除外)。我认为这也应该有效。 (当然有正确的观点)
3) 链接应该允许块之间的链接 - 这样我就可以检索一个块和任何相关的块(如果需要,等等)
4) 内容当然应该是块的内容(我这里有三个示例简单数据类型),理想情况下可以是任意数量的东西(这里通过抽象基类实现)。
5) 对于电子邮件、URL 和文本类,我希望能够编写一个(通用)视图,该视图从一个 url 输入返回三种类型中任何一种的适当块。我认为这可能需要一个自动增量字段来保证三个模型之间的唯一值。老实说,我根本不知道该怎么做。
6) 当然,理想情况下,如果可能的话,这应该很容易扩展。
我当然非常不确定这是否是实现我想要做的事情的最佳方式。接受任何建议、帮助、提示、技巧或恶作剧!
非常感谢您的帮助!
编辑:关于数字 5,我有一个粗略的看法(有语法错误),我认为这可能会奏效:
def getblock(request, block, no):
data = get_object_or_404(%s,%s) % (block,no)
return render_to_response('single.html',{'data':data})
想法?
【问题讨论】:
标签: python django django-models django-views logic