Skip to content

Commit c75c1eb

Browse files
committed
working on django models
1 parent 6abff8a commit c75c1eb

File tree

1 file changed

+174
-173
lines changed

1 file changed

+174
-173
lines changed

content/pages/examples/django/django-db-models-model.markdown

Lines changed: 174 additions & 173 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,26 @@ under the
2424
[**django-audit-log/audit-log/models/__init__.py**](https://github.com/vvangelovski/django-audit-log/blob/master/audit_log/models/__init__.py)
2525

2626
```python
27+
# __init__.py
2728
~~from django.db.models import Model
2829
from django.utils.translation import ugettext_lazy as _
2930
from audit_log.models.fields import (CreatingUserField, CreatingSessionKeyField,
3031
LastUserField, LastSessionKeyField)
3132

3233

3334
~~class AuthStampedModel(Model):
34-
"""An abstract base class model that provides auth and session information
35-
fields.
36-
"""
37-
created_by = CreatingUserField(verbose_name = _("created by"),
38-
related_name = "created_%(app_label)s_%(class)s_set")
39-
created_with_session_key = CreatingSessionKeyField(_("created with session key"))
40-
modified_by = LastUserField(verbose_name = _("modified by"),
41-
related_name = "modified_%(app_label)s_%(class)s_set")
42-
modified_with_session_key = LastSessionKeyField(_("modified with session key"))
43-
44-
class Meta:
45-
abstract = True
35+
~~ """An abstract base class model that provides auth and session information
36+
~~ fields.
37+
~~ """
38+
~~ created_by = CreatingUserField(verbose_name = _("created by"),
39+
~~ related_name = "created_%(app_label)s_%(class)s_set")
40+
~~ created_with_session_key = CreatingSessionKeyField(_("created with session key"))
41+
~~ modified_by = LastUserField(verbose_name = _("modified by"),
42+
~~ related_name = "modified_%(app_label)s_%(class)s_set")
43+
~~ modified_with_session_key = LastSessionKeyField(_("modified with session key"))
44+
~~
45+
~~ class Meta:
46+
~~ abstract = True
4647
```
4748

4849

@@ -59,10 +60,10 @@ for use with Django web apps that is open sourced under the
5960
```python
6061
# -*- coding: utf-8 -*-
6162
from django.apps import apps
62-
``from django.db import models
63+
~~from django.db import models
6364
from django.conf import settings
6465
~~from django.contrib.auth.models import Group, UserManager
65-
`~from django.contrib.sites.models import Site
66+
~~from django.contrib.sites.models import Site
6667
from django.core.exceptions import ImproperlyConfigured, ValidationError
6768
from django.utils.encoding import force_text, python_2_unicode_compatible
6869
from django.utils.translation import ugettext_lazy as _
@@ -251,182 +252,182 @@ from django.contrib.auth import get_user_model
251252
from django.db.models.signals import post_save
252253
from django.dispatch import receiver
253254
from django.utils.translation import ugettext_lazy as _
254-
from django.db import models
255+
~~from django.db import models
255256

256257
# Create your models here.
257258
from django_countries.fields import CountryField
258259

259260

260-
User = get_user_model()
261-
262-
263-
class Conference(models.Model):
264-
full_name = models.CharField(
265-
max_length=300, verbose_name=_('Full name of the conference')
266-
)
267-
268-
short_name = models.CharField(
269-
max_length=30, verbose_name=_('Short name of the conference')
270-
)
271-
272-
is_ieee = models.BooleanField(
273-
default=False, verbose_name=_('The conference is supported by IEEE')
274-
)
275-
276-
country = CountryField(null=True, verbose_name=_('Country'))
277-
278-
city = models.CharField(
279-
max_length=100, verbose_name=_('City')
280-
)
281-
282-
start_date = models.DateField(null=True, verbose_name=_('Opens at'))
283-
close_date = models.DateField(null=True, verbose_name=_('Closes at'))
284-
285-
chairs = models.ManyToManyField(User, related_name='chaired_conferences')
286-
287-
creator = models.ForeignKey(
288-
User, null=True, blank=True, on_delete=models.SET_NULL,
289-
related_name='created_conferences'
290-
)
291-
292-
logotype = models.ImageField(
293-
verbose_name=_("Conference logotype"),
294-
upload_to=f'{settings.MEDIA_PUBLIC_ROOT}/conferences/logo/',
295-
null=True, blank=True
296-
)
297-
298-
description = models.TextField(
299-
verbose_name=_('Medium length description of the conference'),
300-
default="",
301-
blank=True,
302-
)
303-
304-
site_url = models.URLField(
305-
verbose_name=_('Conference informational site'),
306-
default="",
307-
blank=True,
308-
)
309-
310-
def __str__(self):
311-
return f'{self.full_name} ({self.short_name})'
312-
313-
314-
class SubmissionStage(models.Model):
315-
conference = models.OneToOneField(
316-
Conference, on_delete=models.CASCADE, related_name='submission_stage'
317-
)
318-
319-
end_date = models.DateTimeField(
320-
null=True, verbose_name=_('Deadline for submissions')
321-
)
322-
323-
end_date_description = models.CharField(blank=True, max_length=100)
324-
325-
326-
class ReviewStage(models.Model):
327-
conference = models.OneToOneField(
328-
Conference, on_delete=models.CASCADE, related_name='review_stage'
329-
)
330-
331-
end_date = models.DateTimeField(
332-
null=True, verbose_name=_('End of review')
333-
)
334-
335-
336-
class ProceedingType(models.Model):
337-
conference = models.ForeignKey(Conference, on_delete=models.CASCADE)
338-
339-
name = models.CharField(
340-
max_length=100, verbose_name=_('Short name')
341-
)
261+
~~User = get_user_model()
342262

343-
description = models.CharField(
344-
max_length=1000, verbose_name=_('Long description')
345-
)
346263

347-
final_manuscript_deadline = models.DateTimeField(
348-
null=True, verbose_name=_('Deadline for final manuscript submission')
349-
)
350-
351-
min_num_pages = models.IntegerField(
352-
default=4, verbose_name=_('Minimum number of pages in submission')
353-
)
354-
355-
max_num_pages = models.IntegerField(
356-
default=4, verbose_name=_('Maximum number of pages in submission')
357-
)
358-
359-
final_latex_template = models.FileField(
360-
null=True, blank=True,
361-
verbose_name=_('LaTeX template for final manuscript'),
362-
upload_to=f'{settings.MEDIA_PUBLIC_ROOT}/conferences/templates'
363-
)
364-
365-
_final_latex_template_version = models.IntegerField(default=1)
366-
367-
def __str__(self):
368-
return self.name
369-
370-
371-
class SubmissionType(models.Model):
372-
LANGUAGES = (
373-
(None, _('Select submission language')),
374-
('RU', _('Russian')),
375-
('EN', _('English')),
376-
)
377-
378-
conference = models.ForeignKey(Conference, on_delete=models.CASCADE)
379-
380-
name = models.CharField(
381-
max_length=100, verbose_name=_('Short name')
382-
)
383-
384-
description = models.CharField(
385-
max_length=1000, verbose_name=_('Long description')
386-
)
387-
388-
language = models.TextField(max_length=2, choices=LANGUAGES)
389-
390-
latex_template = models.FileField(
391-
null=True, verbose_name=_('LaTeX template'),
392-
upload_to=f'{settings.MEDIA_PUBLIC_ROOT}/conferences/templates'
393-
)
394-
395-
_latex_template_version = models.IntegerField(default=1)
396-
397-
num_reviews = models.IntegerField(
398-
default=2, verbose_name=_('Number of reviews per submission')
399-
)
264+
~~class Conference(models.Model):
265+
~~ full_name = models.CharField(
266+
~~ max_length=300, verbose_name=_('Full name of the conference')
267+
~~ )
268+
~~
269+
~~ short_name = models.CharField(
270+
~~ max_length=30, verbose_name=_('Short name of the conference')
271+
~~ )
272+
~~
273+
~~ is_ieee = models.BooleanField(
274+
~~ default=False, verbose_name=_('The conference is supported by IEEE')
275+
~~ )
276+
~~
277+
~~ country = CountryField(null=True, verbose_name=_('Country'))
278+
~~
279+
~~ city = models.CharField(
280+
~~ max_length=100, verbose_name=_('City')
281+
~~ )
282+
~~
283+
~~ start_date = models.DateField(null=True, verbose_name=_('Opens at'))
284+
~~ close_date = models.DateField(null=True, verbose_name=_('Closes at'))
285+
~~
286+
~~ chairs = models.ManyToManyField(User, related_name='chaired_conferences')
287+
~~
288+
~~ creator = models.ForeignKey(
289+
~~ User, null=True, blank=True, on_delete=models.SET_NULL,
290+
~~ related_name='created_conferences'
291+
~~ )
292+
~~
293+
~~ logotype = models.ImageField(
294+
~~ verbose_name=_("Conference logotype"),
295+
~~ upload_to=f'{settings.MEDIA_PUBLIC_ROOT}/conferences/logo/',
296+
~~ null=True, blank=True
297+
~~ )
298+
~~
299+
~~ description = models.TextField(
300+
~~ verbose_name=_('Medium length description of the conference'),
301+
~~ default="",
302+
~~ blank=True,
303+
~~ )
304+
~~
305+
~~ site_url = models.URLField(
306+
~~ verbose_name=_('Conference informational site'),
307+
~~ default="",
308+
~~ blank=True,
309+
~~ )
310+
~~
311+
~~ def __str__(self):
312+
~~ return f'{self.full_name} ({self.short_name})'
400313

401-
min_num_pages = models.IntegerField(
402-
default=4, verbose_name=_('Minimum number of pages in submission')
403-
)
404314

405-
max_num_pages = models.IntegerField(
406-
default=4, verbose_name=_('Maximum number of pages in submission')
407-
)
315+
~~class SubmissionStage(models.Model):
316+
~~ conference = models.OneToOneField(
317+
~~ Conference, on_delete=models.CASCADE, related_name='submission_stage'
318+
~~ )
319+
~~
320+
~~ end_date = models.DateTimeField(
321+
~~ null=True, verbose_name=_('Deadline for submissions')
322+
~~ )
323+
~~
324+
~~ end_date_description = models.CharField(blank=True, max_length=100)
408325

409-
blind_review = models.BooleanField(
410-
default=False, verbose_name=_('Blind review')
411-
)
412326

413-
possible_proceedings = models.ManyToManyField(ProceedingType)
327+
~~class ReviewStage(models.Model):
328+
~~ conference = models.OneToOneField(
329+
~~ Conference, on_delete=models.CASCADE, related_name='review_stage'
330+
~~ )
331+
~~
332+
~~ end_date = models.DateTimeField(
333+
~~ null=True, verbose_name=_('End of review')
334+
~~ )
414335

415-
def __str__(self):
416-
return self.name
417336

337+
~~class ProceedingType(models.Model):
338+
~~ conference = models.ForeignKey(Conference, on_delete=models.CASCADE)
339+
~~
340+
~~ name = models.CharField(
341+
~~ max_length=100, verbose_name=_('Short name')
342+
~~ )
343+
~~
344+
~~ description = models.CharField(
345+
~~ max_length=1000, verbose_name=_('Long description')
346+
~~ )
347+
~~
348+
~~ final_manuscript_deadline = models.DateTimeField(
349+
~~ null=True, verbose_name=_('Deadline for final manuscript submission')
350+
~~ )
351+
~~
352+
~~ min_num_pages = models.IntegerField(
353+
~~ default=4, verbose_name=_('Minimum number of pages in submission')
354+
~~ )
355+
~~
356+
~~ max_num_pages = models.IntegerField(
357+
~~ default=4, verbose_name=_('Maximum number of pages in submission')
358+
~~ )
359+
~~
360+
~~ final_latex_template = models.FileField(
361+
~~ null=True, blank=True,
362+
~~ verbose_name=_('LaTeX template for final manuscript'),
363+
~~ upload_to=f'{settings.MEDIA_PUBLIC_ROOT}/conferences/templates'
364+
~~ )
365+
~~
366+
~~ _final_latex_template_version = models.IntegerField(default=1)
367+
~~
368+
~~ def __str__(self):
369+
~~ return self.name
418370

419-
class Topic(models.Model):
420-
class Meta:
421-
ordering = ['order']
422371

423-
conference = models.ForeignKey(Conference, on_delete=models.CASCADE)
372+
~~class SubmissionType(models.Model):
373+
~~ LANGUAGES = (
374+
~~ (None, _('Select submission language')),
375+
~~ ('RU', _('Russian')),
376+
~~ ('EN', _('English')),
377+
~~ )
378+
~~
379+
~~ conference = models.ForeignKey(Conference, on_delete=models.CASCADE)
380+
~~
381+
~~ name = models.CharField(
382+
~~ max_length=100, verbose_name=_('Short name')
383+
~~ )
384+
~~
385+
~~ description = models.CharField(
386+
~~ max_length=1000, verbose_name=_('Long description')
387+
~~ )
388+
~~
389+
~~ language = models.TextField(max_length=2, choices=LANGUAGES)
390+
~~
391+
~~ latex_template = models.FileField(
392+
~~ null=True, verbose_name=_('LaTeX template'),
393+
~~ upload_to=f'{settings.MEDIA_PUBLIC_ROOT}/conferences/templates'
394+
~~ )
395+
~~
396+
~~ _latex_template_version = models.IntegerField(default=1)
397+
~~
398+
~~ num_reviews = models.IntegerField(
399+
~~ default=2, verbose_name=_('Number of reviews per submission')
400+
~~ )
401+
~~
402+
~~ min_num_pages = models.IntegerField(
403+
~~ default=4, verbose_name=_('Minimum number of pages in submission')
404+
~~ )
405+
~~
406+
~~ max_num_pages = models.IntegerField(
407+
~~ default=4, verbose_name=_('Maximum number of pages in submission')
408+
~~ )
409+
~~
410+
~~ blind_review = models.BooleanField(
411+
~~ default=False, verbose_name=_('Blind review')
412+
~~ )
413+
~~
414+
~~ possible_proceedings = models.ManyToManyField(ProceedingType)
415+
~~
416+
~~ def __str__(self):
417+
~~ return self.name
424418

425-
name = models.CharField(max_length=250, verbose_name=_('Topic name'))
426-
order = models.IntegerField(default=0)
427419

428-
def __str__(self):
429-
return f'{self.name}'
420+
~~class Topic(models.Model):
421+
~~ class Meta:
422+
~~ ordering = ['order']
423+
~~
424+
~~ conference = models.ForeignKey(Conference, on_delete=models.CASCADE)
425+
~~
426+
~~ name = models.CharField(max_length=250, verbose_name=_('Topic name'))
427+
~~ order = models.IntegerField(default=0)
428+
~~
429+
~~ def __str__(self):
430+
~~ return f'{self.name}'
430431

431432

432433
# source file continues from here without further Model examples

0 commit comments

Comments
 (0)