<p>注:作为一名软件工程师,我喜欢使用体系结构,并且我已经深入研究了分层开发方法,因此我将回答关于层的问题。</p>
<p>据我所知,这是解决办法
模型.py</p>
<pre><code>class Member(models.Model):
member_id = models.AutoField(primary_key=True)
member_name = models.CharField(max_length =
class Group(models.Model):
group_id = models.AutoField(primary_key=True)
group_name = models.CharField(max_length = 20)
fk_member_id = models.ForeignKey('Member', models.DO_NOTHING,
db_column='fk_member_id', blank=True, null=True)
class Membership(models.Model):
membershipid = models.AutoField(primary_key=True)
fk_group_id = models.ForeignKey('Group', models.DO_NOTHING,
db_column='fk_member_id', blank=True, null=True)
join_date = models.DateTimeField()
</code></pre>
<p>序列化程序.py</p>
<pre><code>import serializer
class AllSerializer(serializer.Serializer):
group_id = serializer.IntegerField()
group_name = serializer.CharField(max_length = 20)
join_date = serializer.DateTimeField()
</code></pre>
<p>自定义模型.py</p>
<pre><code>imports...
class AllDataModel():
group_id = ""
group_name = ""
join_date = ""
</code></pre>
<p>业务逻辑.py</p>
<pre><code>imports ....
class getdata(memberid):
alldataDict = {}
dto = []
Member = models.Members.objects.get(member_id=memberid) #or use filter for Name
alldataDict["MemberId"] = Member.member_id
alldataDict["MemberName"] = Member.member_name
Groups = models.Group.objects.filter(fk_member_id=Member)
for item in Groups:
Custommodel = CustomModels.AllDataModel()
Custommodel.group_id = item.group_id
Custommodel.group_name = item.group_name
Membership = models.Membership.objects.get(fk_group_id=item.group_id)
Custommodel.join_date = Membership.join_date
dto.append(Custommodel)
serializer = AllSerializer(dto,many=True)
alldataDict.update(serializer.data)
return alldataDict
</code></pre>
<p>从技术上讲,您必须将请求传递给Data Access Layer,DataAccessLayer将从数据访问层返回经过筛选的对象,但是由于我必须快速回答问题,所以我调整了业务逻辑层中的代码!</p>