我在模型文件中得到了这些表:
class ingredient (models.Model):
ingredient_row_id=models.IntegerField(primary_key=True, editable=False)
ingredient_name=models.CharField(max_length=50)
def __str__(self):
return str(self.ingredient_name)
class receip(models.Model):
receip_row_id=models.IntegerField(primary_key=True, editable=False)
receip_id=models.IntegerField()
receip_name=models.CharField(max_length=50)
receip_ingredient=models.ForeignKey(ingredient)
receip_ingredient_quantity=models.DecimalField(max_digits=5, decimal_places=2)
def __str__(self):
return str(self.receip_name)
class prod(models.Model):
product_row_id=models.IntegerField(primary_key=True, editable=False)
product_name=models.CharField(max_length=50)
product_price=models.DecimalField(max_digits=5, decimal_places=2)
product_receip=models.ForeignKey(receip)
def __str__(self):
return str(self.prod_name)
我想要做的是定义一个由特定收据完成的产品。在此收据中给出了每种成分的数量。
现在我想结合所有这些。让我说我的成分是樱桃和水。
中将其合并正如您所见,我可以在两个“收据”之间进行选择,因为它指的是receipt_row_id而不是receipt_id。
那么有没有办法“合并”这些,以便我只在管理站点中有一个。也许我需要将models.py更改为smth else或优化admin.py。
有人有个主意吗? 问候
答案 0 :(得分:0)
不是真的答案,但是:
您不必指定具有ngOnInit() {
this.form = this.fb.group({
'email': ['', [ Validators.required,
Validators.pattern('^[a-z]+[a-z0-9._]+@[a-z]+\.[a-z.]{2,5}$')]],
'name': ['', [ Validators.required, Validators.minLength(8)]],
'country': ['', [ Validators.minLength(8)]],
'state': ['', [ Validators.minLength(8)]],
'city': ['', [ Validators.minLength(8)]],
'sexualOpt': ['', [ Validators.minLength(8)]],
'marital': ['', [ Validators.minLength(8)]],
'dateOfBirth': ['', [ Validators.minLength(8)]],
'noChildren': ['', [ Validators.minLength(8)]],
'schoolar': ['', [ Validators.minLength(8)]]
});
this.readProfile() ;}
readProfile() {
firebase.database().ref( 'User/' + 'xs9XP4Aq2aVt0q5CkCuocrYyHwC3' + '/profile' )
.once('value')
.then (function(snapshot) {
this.form.controls['name'].setValue(snapshot.val().name);
console.log(snapshot.val());
});
;}
属性的字段,Django会自动为您自动生成字段primary_key
(具有此属性)。我不确定为什么要明确地在模型中定义这些字段,但我会说你可以删除它们。
id
始终引用其他模型的主键。因此,没有办法让你如何“组合”这些字段 - 它们基本上是两个不同的记录,应用程序无法找到如何将它们组合起来。看起来您的数据库架构与您要实现的目标不兼容。
答案 1 :(得分:0)
我只是在收据中提及产品的参考。这对我来说很有用。 所以现在看起来像这样:
class ingredient (models.Model):
ingredient_row_id=models.IntegerField(primary_key=True, editable=False)
ingredient_name=models.CharField(max_length=50)
def __str__(self):
return str(self.ingredient_name)
class receip(models.Model):
receip_row_id=models.IntegerField(primary_key=True, editable=False)
receip_id=models.IntegerField()
receip_name=models.CharField(max_length=50)
receip_ingredient=models.ForeignKey(ingredient)
receip_ingredient_quantity=models.DecimalField(max_digits=5, decimal_places=2)
receip_product=models.ForeignKey(prod)
def __str__(self):
return str(self.receip_name)
class prod(models.Model):
product_row_id=models.IntegerField(primary_key=True, editable=False)
product_name=models.CharField(max_length=50)
product_price=models.DecimalField(max_digits=5, decimal_places=2)
def __str__(self):
return str(self.prod_name)