首页 > 解决方案 > Django模型:名称仅相差一个数字的属性名称分配

问题描述

我有这个模型(其目的是保存数据):

class UserPhraseDatum(models.Model):
    result_from = models.ForeignKey(Results, related_name="data")
    phrase = models.ForeignKey(Sound)
    score = models.DecimalField(max_digits=5, decimal_places=4)
    snr = models.PositiveSmallIntegerField()
    m_energy_1 = models.PositiveSmallIntegerField() 
    m_energy_2 = models.PositiveSmallIntegerField()
    m_energy_3 = models.PositiveSmallIntegerField()
    m_energy_4 = models.PositiveSmallIntegerField()
    m_energy_5 = models.PositiveSmallIntegerField()
    m_energy_6 = models.PositiveSmallIntegerField()
    m_energy_7 = models.PositiveSmallIntegerField()
    u_energy_1 = models.PositiveSmallIntegerField()
    u_energy_2 = models.PositiveSmallIntegerField()
    u_energy_3 = models.PositiveSmallIntegerField()
    u_energy_4 = models.PositiveSmallIntegerField()
    u_energy_5 = models.PositiveSmallIntegerField()
    u_energy_6 = models.PositiveSmallIntegerField()
    u_energy_7 = models.PositiveSmallIntegerField()

最终,这些实例中的信息将在 中进行分析R,并可能输出到 CSV。将始终有 6 个条目m_energy和 6 个条目u_energy。有没有更好的方法来分配这些?

标签: pythondjango

解决方案


您也可以使用反向ForeignKey关系。您需要创建其他模型:

class m_energy(models.Model):
     content_field = '''some content'''
     UserPhraseDatum = models.ForeignKey('UserPhraseDatum', related_name = 'm_energies')

u_energy是一样的。

在您的查询中,您可以采用m_energy以下方式:

var = UserPhraseDatum.objects.filter(m_energies__content_field )

推荐阅读