from django.db import models from django.utils.translation import ugettext_lazy as _ from renter.models import RefAbstract, Renter from django.contrib.gis.db import models from textwrap import shorten # модель содержит поля и поведение ваших данных. #определенны таблицы: class Unitt(RefAbstract): class Meta(RefAbstract.Meta): verbose_name = 'единица измерения' verbose_name_plural = 'единицы измерения' class ManageType(RefAbstract): class Meta(RefAbstract.Meta): verbose_name = 'тип хозяйства' verbose_name_plural = 'типы хозяйств' class CutareaShape(RefAbstract): class Meta(RefAbstract.Meta): verbose_name = 'форма рубки' verbose_name_plural = 'формы рубок' class CutareaType(models.Model): name = models.TextField('наименование', max_length=500) def __str__(self): return shorten(self.name, width=60) class Meta: verbose_name = 'вид рубки' verbose_name_plural = 'виды рубок' class Composition(RefAbstract): class Meta(RefAbstract.Meta): verbose_name = 'породный состав' verbose_name_plural = 'состав пород' class Assortment(RefAbstract): class Meta(RefAbstract.Meta): verbose_name = 'сортиментный состав' verbose_name_plural = 'сортиментные составы' class Task(RefAbstract): class Meta(RefAbstract.Meta): verbose_name = 'целевое назначение' verbose_name_plural = 'целевые назначения' class Spatial(models.Model): codeq = models.IntegerField('номер квартала',help_text='номер квартала') #необходимо создать класс квартала code = models.IntegerField('лесосека', unique=True) codeV = models.IntegerField('номер выдела',help_text='номер выдела') #необходимо создать класс выдела renter = models.ForeignKey(Renter, on_delete=models.DO_NOTHING, verbose_name='рентер') geometry = models.MultiPolygonField(geography=True, verbose_name='геометрия') class Meta: verbose_name = 'лесосека' verbose_name_plural = 'лесосеки' class LScharacteristic(models.Model): codels = models.ForeignKey(Spatial, on_delete=models.DO_NOTHING, verbose_name = 'лесосека') #требуется ОБЩИЙ выпадающей список (МНОГИЕ-КО-МНОГИМ) tract = models.CharField('урочище',max_length = 80, help_text='урочище') task = models.ForeignKey(Task, on_delete=models.DO_NOTHING, verbose_name='целевое назначение')#требуется ОБЩИЙ выпадающей список ("классификатор") totalarea = models.PositiveIntegerField('общая площадь',help_text = 'общая площадь') explarea = models.PositiveIntegerField('эксплуатационная площадь',help_text = 'эксплуатационная площадь') protecttype = models.CharField('категория защитных лесов',max_length = 50, help_text = 'категория защитных лесов') class Meta: verbose_name = 'характеристика лесосек' verbose_name_plural = 'характеристика лесосеки' class PlannedUsing(models.Model): codels = models.ForeignKey(Spatial, on_delete=models.DO_NOTHING, verbose_name = 'лесосека') codeq = models.IntegerField(help_text='номер квартала') cutareaShape = models.ForeignKey(CutareaShape, on_delete=models.DO_NOTHING, verbose_name='форма рубки') cuttype = models.ForeignKey(CutareaType, on_delete=models.DO_NOTHING, verbose_name='вид рубки') managetype = models.ForeignKey(ManageType, on_delete=models.DO_NOTHING, verbose_name='тип хозяйства') unit = models.ForeignKey(Unitt, on_delete=models.DO_NOTHING, verbose_name='единица измерения') composition = models.ForeignKey(Composition, on_delete=models.DO_NOTHING, verbose_name='породный состав') assortment = models.ForeignKey(Assortment, on_delete=models.DO_NOTHING, verbose_name='сортиментный состав') class Meta: verbose_name = 'планируемое использование' verbose_name_plural = 'планируемое использование'
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question