Python @django中的Classmethods与Defs

Python @django中的Classmethods与Defs,python,ajax,database,django,Python,Ajax,Database,Django,我正在构建一个提交一些数据的ajax页面。单击提交按钮时,我希望通过request.get获取数据。但我对数据的处理是基于操作的,即提交、更改、删除,这些操作也是从request.GET获得的 我正试图找出在数据库中添加/修改/删除的最佳方法,因为我的模型包含其他模型的外键 我应该这样做: # Model4 class Model4(models.Model): .... data ... # Model3 class Model3(models.Model): .... da

我正在构建一个提交一些数据的ajax页面。单击提交按钮时,我希望通过request.get获取数据。但我对数据的处理是基于操作的,即提交、更改、删除,这些操作也是从request.GET获得的

我正试图找出在数据库中添加/修改/删除的最佳方法,因为我的模型包含其他模型的外键

我应该这样做:

# Model4
class Model4(models.Model):
    .... data ...

# Model3
class Model3(models.Model):
    .... data ....

# Model2
class Model2(models.Model):
    ... data ...
    foreign key to Model3 & Model4

# Model1
class DataModel(models.Model):
    # ----- Model data -----
    name = models.CharField(max_length=30)
    data = models.ForeignKey(Model2, blank=True, null=True, on_delete=models.SET_NULL)


    @classmethod
    def submit():
        pass
    @classmethod
    def change():
        pass
    @classmethod
    def delete():
        pass
此模型链接到Model2,该Model2有两个外键指向其他两个模型Model3和Model4

还是我应该这样做

# methods within the views.py
def submit( DataModel Object, ... data ... ):
    # create new data objects and associate with DataModel
    pass
def change( DataModel Object, ... data ... ):
    # change data object associated with DataModel
    pass
def delete( DataModel Object, ... data ... ):
    # delete data object associated with DataModel
    pass
或者我应该做一些完全不同的事情? 以下是提交的内容:

def submitdata(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect(reverse('loginregistration.views.login'))

    results = {'success':False, 'message':"invalid request"}
    if request.method == u'GET':
        GET = request.GET
        if GET.has_key(u'datamodel_id') and GET.has_key(u'action') and GET.has_key(u'data'):

            datamodel_id = GET[u'datamodel_id']
            action = GET[u'action']


            data_model = DataModel.objects.get(datamodel_id=datamodel_id)
            if action == u"submit":
                results = data_model.submit() # or submit(datamodel_id, data)
            elif action == u"change":
                results = data_model.change() # or change(datamodel_id, data)
            elif action == u"delete":
                results = data_model.delete() # or delete(datamodel_id, data)
            else:
                results = False

    json = simplejson.dumps(results)
    return HttpResponse(json, mimetype='application/json')

胖模型、辅助模块、精简视图、愚蠢的模板