我有两张桌子(比如父母和孩子)。我希望父和子使用外键相互链接。子表有两个字段,其中一个是'country_sig'。这个country_sig实际上是通过加入名为'country'和'code'的父表中的两个字段组成的。 例如:如果国家/地区为“IN”且代码为“15”,则country_sig为 IN.15 。
现在我想在为父表创建django模型期间,它应该自动创建此字段country_sig 派生自'country'和'code',以便我可以将它引用到子表。
PS:由于父表非常大,我不想在从这两个字段派生的数据库中创建另一个字段,但我可以调整另一个表(子表)将country_sig字段分成两列使用'country'和'code'但由于django不支持复合主键,因此无效。
修改: 实际上我在tastypie中实现它,我想要tastypie认为它是一个真实的领域。这将解决我的真正问题。
答案 0 :(得分:0)
也许不要使用标准的tasypie ModelResources,而是编写自己的资源:
class DictWrapper(object):
'''
to be used as generic tastypie resource object
'''
def __init__(self, initial=None):
self.__dict__['_data'] = {}
if hasattr(initial, 'items'):
self.__dict__['_data'] = initial
def __getattr__(self, name):
return self._data.get(name, None)
def __setattr__(self, name, value):
self.__dict__['_data'][name] = value
def to_dict(self):
return self._data
class ParentResource(Resource):
def get_object_list(self, request):
ret = []
for parent in Parent.objects.all():
ret.append(DictWrapper({"country_sig":"{0}.{1}".format(parent.country, parent.code})))
return return
def obj_get_list(self, request=None, **kwargs):
return self.get_object_list(request)