我有以下型号:
class criterion(models.Model):
quantity = '0'
quality = '1'
ascending = '0'
descending = '1'
three = '3'
five = '5'
seven = '7'
ten = '10'
type_choices = (
(quantity,'Ποσοτικό'),
(quality,'Ποιοτικό'),
)
monotonicity_choices = (
(ascending,'Αύξον'),
(descending,'Φθίνον'),
)
a_choices = (
(three,'Τριβάθμια'),
(five,'Πενταβάθμια'),
(seven,'Εφταβάθμια'),
(ten,'Δεκαβάθμια'),
)
criterion_research = models.ForeignKey('research', on_delete=models.CASCADE,null=True)
criterion_name = models.CharField(max_length = 200,verbose_name='Όνομα Κριτηρίου')
criterion_type = models.CharField(max_length = 15,choices = type_choices , default = quantity,verbose_name='Τύπος')
criterion_monotonicity = models.CharField(max_length = 15,choices = monotonicity_choices , default = ascending,verbose_name='Μονοτονία')
criterion_a = models.CharField(max_length = 30,choices = a_choices , default = five,verbose_name='Κλίμακα',help_text='Επιλέξτε μία από τις 4 κλίμακες που θα μετρηθεί το κριτήριο.')
criterion_worst = models.FloatField(default=' ',verbose_name='Χειρότερη Τιμή',help_text='Επιλέξτε τη χειρότερη τιμή την οποία μπορεί να πάρει το κριτήριο.',blank=True)
criterion_best = models.FloatField(default=' ',verbose_name='Καλύτερη Τιμή',help_text='Επιλέξτε τη καλύτερη τιμή την οποία μπορεί να πάρει το κριτήριο.',blank=True)
def __str__(self):
return self.criterion_name
class alternative(models.Model):
name = models.CharField(max_length = 200,verbose_name='Όνομα Εναλλακτικής')
ranking = models.IntegerField(default='1')
alternative_research = models.ForeignKey('research', on_delete=models.CASCADE)
criteria = models.ManyToManyField('criterion', through='criterionvalue',blank=True)
def __str__(self):
return self.name
class criterionvalue(models.Model):
value = models.IntegerField(default='0')
alt = models.ForeignKey('alternative',on_delete=models.CASCADE)
crit = models.ForeignKey('criterion',on_delete=models.CASCADE)
我创建了一个视图,用于填充条件实例和替代实例(manytomany字段除外)。
我想查询所有可能的标准和备选方案,然后基于填充标准实例。在完成这些之后,我想要指定标准值实例与备选实例的多重关系。我想做一个然后,使用替代项和标准查询集的长度将标准值模型的形式集(由表单集创建的表单)与替代项和标准相关联(为了使用表单呈现关联矩阵)。
但我认为这样的想法是牵强附会的。 关于如何实现这样的事情的任何想法?