Class demo_ref_country(models.Model)
code= models.CharField(max_length=4, db_index=True, null=False)
name= models.CharField(max_length=64, db_index=True, null=False)
geog_region = models.ForeignKey(geographic_region, null=False)
ccy = models.ForeignKey(Currency_def, null=False)
flag = models.ImageField(upload_to='path to directory', null=False, default="home")
created_at = models.DateTimeField(auto_now_add=True, db_index=True)
class Meta:
unique_together = (code, geog_region, ccy)
Вы можете установить значения по умолчанию. Параметр db_index создает индексы для связанных полей. Вы можете использовать unique = True для отдельных полей, но tahat unique вместе проверит уникальность в столбцах вместе.
ОБНОВЛЕНИЕ: Прежде всего, я советую вам внимательно прочитать документацию, поскольку django дает вам много возможностей, некоторые из них имеют некоторые ограничения ... Например, опция unique_together используется только для админ django Это означает, что если вы создаете новую запись или редактируете ее через интерфейс администратора, она будет использоваться. Если вы также будете вставлять данные другими способами (например, оператором DataModel.objects.create), лучше использовать uniaue = True в определении поля, например:
code= models.CharField(max_length=4, db_index=True, null=False, unique=True)
Поля ForeignKey по умолчанию уникальны, поэтому вам не нужно определять для них уникальность.
Django поддерживает переопределение методов, поэтому вы можете переопределять методы сохранения и удаления моделей по своему усмотрению.
проверьте это здесь . Django также позволяет вам писать необработанные SQL-запросы , вы можете проверить это здесь
Как я объяснил, вместе взятые - это админка django. Так что не забудьте добавить unique = True в обязательные поля.
Unique вместе также позволяет вам определять различные уникальные пары, такие как;
unique_together = (('id','code'),('code','ccy','geog_region'))
Это означает, что id и код должны быть уникальными вместе и code, ccy и geog_region должны быть уникальными вместе
ОБНОВЛЕНИЕ 2: до обновления вашего вопроса ...
Лучше начать с учебников . Это определяет основы с хорошими примерами.
Что касается стиля doc, позвольте мне привести вам пример, но если вы начнете с репетиторов, вам будет легче ...
Есть из структуры модели ... Док здесь
BooleanField
class BooleanField(**options)
, который определяет, используется базовая структура поля базы данных (), и некоторые параметры взяты в качестве опций. это часть:
models.BooleansField()
Поскольку это структура поля, доступные параметры определяются следующим образом:
unique
Field.unique
Итак,
models.BooleansField(unique=True)
Это общее использование. Поскольку uniqu - это базовая опция, доступная для всех типов полей, она классифицируется как field.unique. Есть несколько параметров, доступных для одного типа поля, например, симметричный, который является параметром поля ManyToMany, классифицируется как ManyToMany.Symmetrical
Для queryset
class QuerySet([model=None])
Используется при использовании функции, но вы используете ее для фильтрации модели, другими словами, пишите запрос фильтра для выполнения ... У него есть несколько методов, например, фильтр ...
filter(**kwargs)
Поскольку для этого требуются некоторые kwargs, и, как я уже говорил, это используется для фильтрации результатов вашего запроса, поэтому kwargs должны быть полями вашей модели (полями таблицы базы данных) Как:
MyModel.objects.filter(id=15)
что за объект определяется в документе, но это менеджер, который помогает вам получать связанные объекты.
Док содержит хорошие примеры, но вы должны начать с репетиторов, вот что я могу вам посоветовать ...