У меня есть фрагмент для кодов стран, и я хочу определить локализованные названия стран на корневых страницах для каждого локализованного сайта.
Фрагмент выглядит так:
@register_snippet
class Country(models.Model):
iso_code = models.CharField(max_length=2, unique=True)
panels = [
FieldPanel('iso_code'),
]
def get_iso_codes():
try:
countries = Country.objects.all()
result = []
for country in countries:
result.append((country.iso_code,country.iso_code))
return result
except Country.DoesNotExist:
return []
Теперь я хочу вызвать функцию get_iso_codes при создании блока выбора и заполнить варианты из фрагмента.
Блок выглядит так
class CountryLocalizedBlock(blocks.StructBlock):
iso_code = blocks.ChoiceBlock(choices=Country.get_iso_codes(), unique=True)
localized_name = blocks.CharBlock(required=True)
Однако при вызове makemigrations manage.py я получаю следующую ошибку:
psycopg2.ProgrammingError: relation "home_country" does not exist
LINE 1: ..."."iso_code", "home_country"."sample_number" FROM "home_coun...
Я могу обойти это, закомментировав «Country.objects.all()», а затем запустив makemigration и позже снова прочитав строку в коде, однако я бы предпочел решение, которое не требует этого обходного пути (также оно терпит неудачу, когда я запускаю ' manage.py collectstatic» при сборке перед развертыванием, и я не знаю, как это обойти, и застрял)