[英]Django error: “Accessor for field clashes with related field”
當我運行“ python manage.py runserver”時,以下2條錯誤消息被打印4次:
transcription.treatment: Accessor for field 'treatment_ptr' clashes with related field 'Treatment.treatment'. Add a related_name argument to the definition for 'treatment_ptr'.
transcription.treatment: Reverse query name for field 'treatment_ptr' clashes with related field 'Treatment.treatment'. Add a related_name argument to the definition for 'treatment_ptr'.
下面是我的代碼。 在shared / models.py中:
class Treatment(models.Model):
code = RandomCharField(length=6)
experiment_id = models.CharField(max_length = 10, null = True)
base_pay = models.PositiveIntegerField(default=20)
def was_started_recently(self):
expiry_time = timedelta(minutes = 5)
if datetime.now() - self.time_started < expiry_time:
return True
class OfferTreatment(Treatment):
max_offer_amount = models.PositiveIntegerField(default=50)
increment_amount = models.PositiveIntegerField(default=5)
def offer_choices(self):
return range(0, self.max_offer_amount + 1, self.increment_amount)
def is_valid_offer(amount):
return amount in self.offer_choices()
class Meta:
abstract = True
在games / transcription / models.py中:
class Treatment(shared.models.OfferTreatment):
short_name = 'tr'
long_name = 'Transcription'
有什么建議么?
您有兩個稱為“治療”的模型。 盡管OfferTreatment是抽象的,但Treatment的共享版本卻不是。 您可能應該將其標記為抽象,然后將其重命名為BaseTreatment。
或者,您可能需要進行轉錄。將其處理為代理模型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.