Browse Source
feat(hadis): add Country and Publisher relational models, migrations, and admin APIs
feat(hadis): add Country and Publisher relational models, migrations, and admin APIs
- Add Country model for transmitters and reference publishers - Add Publisher model linked to Country and City - Add migration 0065 for Country and Publisher models - Expose AdminCountrySerializer, AdminPublisherSerializer, and respective viewsets in admin URLsmaster
6 changed files with 277 additions and 5 deletions
-
61apps/hadis/migrations/0065_country_and_publisher_models.py
-
65apps/hadis/models/reference.py
-
41apps/hadis/models/transmitter.py
-
55apps/hadis/serializers/serializers_admin.py
-
6apps/hadis/urls.py
-
54apps/hadis/views_admin.py
@ -0,0 +1,61 @@ |
|||
# Generated by Django 4.2.30 on 2026-10-21 10:38 |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('hadis', '0064_transmitter_profession_and_relations'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='Country', |
|||
fields=[ |
|||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('title', models.JSONField(default=list, verbose_name='Title')), |
|||
('slug', models.SlugField(allow_unicode=True, blank=True, max_length=255, null=True, verbose_name='slug')), |
|||
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')), |
|||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Country', |
|||
'verbose_name_plural': 'Countries', |
|||
'ordering': ('-created_at', '-id'), |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='BookPublisher', |
|||
fields=[ |
|||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('title', models.JSONField(default=list, verbose_name='Title')), |
|||
('slug', models.SlugField(allow_unicode=True, blank=True, max_length=255, null=True, verbose_name='slug')), |
|||
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='created at')), |
|||
('updated_at', models.DateTimeField(auto_now=True, verbose_name='updated at')), |
|||
('city', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publishers', to='hadis.city', verbose_name='City')), |
|||
('country', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publishers', to='hadis.country', verbose_name='Country')), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Book Publisher', |
|||
'verbose_name_plural': 'Book Publishers', |
|||
'ordering': ('-created_at', '-id'), |
|||
}, |
|||
), |
|||
migrations.AddField( |
|||
model_name='bookedition', |
|||
name='country_of_publication_country', |
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publication_editions', to='hadis.country', verbose_name='Country of Publication (Country)'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='bookedition', |
|||
name='publisher_item', |
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='editions', to='hadis.bookpublisher', verbose_name='Publisher Entity'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='city', |
|||
name='country', |
|||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='cities', to='hadis.country', verbose_name='Country'), |
|||
), |
|||
] |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue