我有一个任务模型:
class Task(models.Model):
text = models.TextField()
datetime = models.DateTimeField(auto_now_add=True)
taken = models.BooleanField(default=False)
done = models.BooleanField(default=False)
client = models.ForeignKey('UserProfile', related_name='tasks_given')
executor = models.ForeignKey('UserProfile', related_name='tasks_received')
def __unicode__(self):
return 'Task #'+str(self.id)
我必须处理它的创建,验证,取消等。
最好的方法是什么?在views.py
中有一个(对于所有情况)或几个(对于每种情况)函数更好吗?拥有一个包含大量{% if %}
的模板是否更好?或者更好地拥有一些模板? 任何其他提示将被赞赏=)
答案 0 :(得分:0)
您可以使用django-admin网站,如chapter 2 of the tutorial。
中所示答案 1 :(得分:0)
我不完全确定“最佳行动方式”的含义,但如果您想要处理对象创建和验证,则可以在模型中编写额外的方法。
class Task(Models.model):
...
## fields
...
## Example of a method on the model
def validate(self):
## validate the model here
我认为您希望最小化视图中的验证代码。如果从您的角度来看,您可以验证如下:
new_task.validate()
而不是必须在每个要使用任务模型的视图中编写验证。
答案 2 :(得分:0)
对于操作,您最好扩展基于类的通用视图,它们非常模块化,已经包含了大部分功能,并且模板名称的合理默认值等。
https://docs.djangoproject.com/en/1.3/ref/class-based-views/#detail-views
它们基于mixin组合,因此对于每个部分或功能步骤,您必须覆盖一个非常具体的方法。一旦你得到它就很简单。
对于模板,请使用extends
和include
标记,避免重复代码。尽量使用大多数自动生成的代码。