#python #django #model
#python #django #Модель
Вопрос:
У меня есть модель по порядку имен, я хочу создать поле invoice_number для этой же модели и сохранить идентификатор заказа и некоторый другой сгенерированный текст, чтобы составить номер invoice_number заказа, и я не могу понять это, я думаю, что есть короткий и аккуратный способ добиться этого, и я буду признателен за любую помощь, спасибо. Этот код выдает ошибку, что self не определен вот мой код
import datetime
YEAR = datetime.datetime.today().year
class Order(models.Model):
customer_contact = models.IntegerField()
paid = models.BooleanField(default=False)
date = models.DateTimeField(auto_now=True)
salesman = models.CharField(db_index=True, max_length=20)
discount = models.IntegerField(default=0)
price = models.IntegerField(default=0)
customer_name = models.CharField(db_index=True, max_length=20)
apartment_name = models.CharField(db_index=True, max_length=20)
flat_number = models.IntegerField()
invoice_number = models.CharField(max_length=20,
default=f'{YEAR}/INV/000{self.pk}')
Комментарии:
1. Какая ошибка возникает?
2. самость не определена
3. Ошибка имени: имя ‘self’ не определено
4. pk не известен до тех пор, пока модель не будет сохранена в базе данных, поэтому вы не можете сделать это таким образом. Сделайте
invoice_number
как пустое поле, а затем переопределите метод modelsave()
для заполнения значения.5. Лучшим решением могло бы быть, если
invoice_number
это вообще не поле, а свойство , которое вычисляется «на лету» изself.date.year
иself.pk
.