覆盖Django中的默认路由方法

时间:2019-03-11 19:05:02

标签: django django-models django-rest-framework

我有一个带有DefaultRouter的小应用程序,用于处理某些型号的基本操作。

问题是,我需要重写标准DefaultRouter的创建和更新方法,以便在不使用Django Admin的情况下处理problem

模型等没什么特别的,但是重要的是我想使用特定的抽象模型作为父类来覆盖所有模型的方法。如果我在模型中创建了save()和update()方法,则DefaultRouter崩溃。

from django.db import models

"""
    Class contains common fields for all models
"""


class AbstractOurModel(models.Model):
    add_user = models.ForeignKey(
        'User', 
        models.PROTECT,
        blank=False,
        null=False,
        related_name='%(class)s_add_user'
    )
    add_date = models.DateTimeField(auto_now_add=True)
    mod_user = models.ForeignKey(
        'User', 
        models.PROTECT,
        blank=False,
        null=False,
        related_name='%(class)s_mod_user'
    )
    mod_date = models.DateTimeField(auto_now=True)

    def save(request):
        self.add_user = request.user 
        self.mod_user = request.user 

    def update(request):
        self.mod_user = request.user

    class Meta:
        abstract = True

感谢您的帮助!

0 个答案:

没有答案