当前位置: 首页>>代码示例>>Python>>正文


Python models.PROTECT属性代码示例

本文整理汇总了Python中django.db.models.PROTECT属性的典型用法代码示例。如果您正苦于以下问题:Python models.PROTECT属性的具体用法?Python models.PROTECT怎么用?Python models.PROTECT使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在django.db.models的用法示例。


在下文中一共展示了models.PROTECT属性的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: ask_remove_enum_values

# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import PROTECT [as 别名]
def ask_remove_enum_values(self, db_type, values):
        """ How to treat records with deleted enum values. """
        # Ordered ensures
        choices = [
            (models.CASCADE, "Cascade - Delete records with removed values"),
            (models.PROTECT, "Protect - Block migrations if records contain removed values"),
            (models.SET_NULL, "Set NULL - Set value to NULL"),
            (models.SET_DEFAULT, "Set default - Set value to field default"),
            (models.SET, "Set value - Provide a one off default now"),
            (models.DO_NOTHING, "Do nothing - Consistency must be handled elsewhere"),
            (None, "Leave it to field definitions")]
        choice, _ = choices[self._choice_input(
            "Enum {db_type} has had {values} removed, "
            "existing records may need to be updated. "
            "Override update behaviour or do nothing and follow field behaviour.".format(
                db_type=db_type,
                values=values),
            [q for (k, q) in choices]) - 1]
        if choice == models.SET:
            return models.SET(self._ask_default())
        return choice 
开发者ID:ashleywaite,项目名称:django-more,代码行数:23,代码来源:patches.py

示例2: __init__

# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import PROTECT [as 别名]
def __init__(self, db_type, add_values=None, remove_values=None, on_delete=models.PROTECT):
        self.db_type = db_type
        self.add_values = set(add_values or ())
        self.remove_values = set(remove_values or ())
        self.on_delete = on_delete 
开发者ID:ashleywaite,项目名称:django-more,代码行数:7,代码来源:operations.py

示例3: create_snapshot_model

# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import PROTECT [as 别名]
def create_snapshot_model(cls, fields=[]):
    """ Dynamically create a main Model, 1-1 with the model being snapshotted. """
    # Models must have unique names, so we create a name by suffixing model class name with 'Snapshot'
    name = cls.__name__ + 'Snapshot'

    class Meta:
        db_table = '%s_snapshot' % cls._meta.db_table
        app_label = cls._meta.app_label
        verbose_name = u'%s - snapshot' % cls._meta.verbose_name
        verbose_name_plural = u'%s - snapshoty' % cls._meta.verbose_name
        ordering = ['-created_at']

    # Set up a dictionary to simulate declarations within a class.
    attrs = {
        '__module__': cls.__module__,
        'Meta': Meta,
        'id': models.AutoField(primary_key=True),
        'created_at': models.DateTimeField(u"stworzony dnia", auto_now_add=True),
        'snapshot_of': models.ForeignKey(cls, verbose_name=u"dotyczy", null=False, on_delete=models.PROTECT, related_name="snapshots"),
        '__unicode__': lambda self: u'snapshot',
    }

    # Copy fields
    for field_name in fields:
        target_field = cls._meta.get_field_by_name(field_name)[0]
        attrs[field_name] = copy_field(target_field)

    return type(name, (models.Model,), attrs) 
开发者ID:KlubJagiellonski,项目名称:Politikon,代码行数:30,代码来源:snapshots.py

示例4: post

# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import PROTECT [as 别名]
def post(self, request, *args, **kwargs):
        try:
            msg = _("%(model_name)s '%(instance)s' deleted.") % {
                'model_name': self.verbose_name, 'instance': self.instance
            }
            self.delete_instance()
            messages.success(request, msg)
            return redirect(self.index_url)
        except models.ProtectedError:
            linked_objects = []
            fields = self.model._meta.fields_map.values()
            fields = (obj for obj in fields if not isinstance(
                obj.field, ManyToManyField))
            for rel in fields:
                if rel.on_delete == models.PROTECT:
                    if isinstance(rel, OneToOneRel):
                        try:
                            obj = getattr(self.instance, rel.get_accessor_name())
                        except ObjectDoesNotExist:
                            pass
                        else:
                            linked_objects.append(obj)
                    else:
                        qs = getattr(self.instance, rel.get_accessor_name())
                        for obj in qs.all():
                            linked_objects.append(obj)
            context = self.get_context_data(
                protected_error=True,
                linked_objects=linked_objects
            )
            return self.render_to_response(context) 
开发者ID:wagtail,项目名称:wagtail,代码行数:33,代码来源:views.py

示例5: post

# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import PROTECT [as 别名]
def post(self, request, *args, **kwargs):
        if request.POST:
            try:
                self.delete_instance()
                messages.success(
                    request,
                    _("{model} '{instance}' deleted.").format(
                        model=self.model_name, instance=self.instance))
                return redirect(self.get_index_url)
            except models.ProtectedError:
                messages.error(
                    request, _(
                        "{model} '{instance}' could not be deleted."
                    ).format(model=self.model_name, instance=self.instance))

                linked_objects = []
                for rel in self.model._meta.get_all_related_objects():
                    if rel.on_delete == models.PROTECT:
                        qs = getattr(self.instance, rel.get_accessor_name())
                        for obj in qs.all():
                            linked_objects.append(obj)

                context = {
                    'view': self,
                    'instance': self.instance,
                    'error_protected': True,
                    'linked_objects': linked_objects,
                }
        return self.render_to_response(context) 
开发者ID:rkhleics,项目名称:wagtailmodeladmin,代码行数:31,代码来源:views.py

示例6: media_consumi

# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import PROTECT [as 别名]
def media_consumi(self):
        rifornimenti = Rifornimento.objects.filter(veicolo=self)
        litri = 0
        for rifornimento in rifornimenti:
            litri += rifornimento.consumo_carburante
        try:
            ultimo_rifornimento = Rifornimento.objects.filter(veicolo=self).latest("data")
            primo_rifornimento = Rifornimento.objects.filter(veicolo=self).earliest("data")
        except Rifornimento.DoesNotExist:
            return 0
        km = ultimo_rifornimento.contachilometri - primo_rifornimento.contachilometri
        litri -= ultimo_rifornimento.consumo_carburante
        if litri != 0:
            return round(km/litri, 2)
        else:
            return 0

# class Immatricolazione(ModelloSemplice, ConMarcaTemporale):
#     """
#     Rappresenta una pratica di immatricolazione di un Veicolo
#
#     Una pratica viene istruita da un ufficio motorizzazione per conto di una unita' CRI richiedente.
#     La stessa viene sottoposta a due stadi di approvazione, in seguito alla istruzione. Quando la
#     pratica termina, il veicolo viene immatricolato ed entra in servizio.
#     """
#
#     class Meta:
#         verbose_name = "Pratica di Immatricolazione"
#         verbose_name_plural = "Pratiche di Immatricolazione"
#
#     richiedente = models.ForeignKey(Sede, related_name='immatricolazioni_richieste', null=True, on_delete=models.SET_NULL)
#     ufficio = models.ForeignKey(Sede, related_name='immatricolazioni_istruite', on_delete=models.PROTECT)
#     veicolo = models.ForeignKey(Veicolo, related_name='richieste_immatricolazione', on_delete=models.CASCADE) 
开发者ID:CroceRossaItaliana,项目名称:jorvik,代码行数:35,代码来源:models.py


注:本文中的django.db.models.PROTECT属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。