Я создаю генератор купонов для раздачи «получите $ 10 бесплатно, если вы зарегистрируетесь с помощью этого кода».База пользователей очень мала, и вероятность выдачи более десяти купонов за раз маловероятна.
При создании новой маркетинговой кампании администратору предоставляется пять купонов в TabularInline с возможностьюсоздать больше с помощью кнопки «Добавить еще один купон».Но купоны 6 и выше имеют тот же случайный код, что и купон 5;похоже, что Django на самом деле не запрашивает новый пример объекта с сервера, а просто дублирует последний увиденный.
Код для этого:
class Coupon(models.Model):
campaign = models.ForeignKey(Campaign)
code = models.CharField(max_length = 32, blank=False, null=False, default=generate_code)
redeemed_by = models.ForeignKey(User, null = True, blank = True)
Где generate_code()
- это функция, которая генерирует случайную строку.Мне кажется, что администратор Django должен соблюдать настройку default
своих собственных классов Field, и это ... для первых n , сгенерированных на стороне администратора сервера, но не для тех, кто построенпо запросу клиента.
Есть ли способ заставить Django создавать объекты на сервере и извлекать их?Придется ли мне взламывать собственную страницу, чтобы создавать встроенные коды?Или есть более разумный способ сделать это?