本文整理汇总了Python中django.db.models.DO_NOTHING属性的典型用法代码示例。如果您正苦于以下问题:Python models.DO_NOTHING属性的具体用法?Python models.DO_NOTHING怎么用?Python models.DO_NOTHING使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类django.db.models
的用法示例。
在下文中一共展示了models.DO_NOTHING属性的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ask_remove_enum_values
# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import DO_NOTHING [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
示例2: __init__
# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import DO_NOTHING [as 别名]
def __init__(self, to, *args, **kwargs):
self.to = to
if (isinstance(to,basestring)):
super(JeevesForeignKey, self).__init__(
to, kwargs.pop("on_delete",models.DO_NOTHING), kwargs.pop("from_fields",[]), kwargs.pop("to_fields",[]), *args, **kwargs)
else:
self.join_field = to._meta.pk
for field in to._meta.fields:
if field.name == 'jeeves_id':
self.join_field = field
break
else:
# support non-Jeeves tables
self.join_field = to._meta.pk
#raise Exception("Need jeeves_id field")
super(JeevesForeignKey, self).__init__(
to, models.DO_NOTHING, [self], [self.join_field], *args, **kwargs)
self.db_constraint = False
示例3: __init__
# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import DO_NOTHING [as 别名]
def __init__(self, to, on_delete=models.DO_NOTHING, related_name=None, related_query_name=None,
limit_choices_to=None, parent_link=False, to_field=None, db_constraint=False, **kwargs):
super(ForeignKey, self).__init__(to, on_delete, related_name, related_query_name, limit_choices_to,
parent_link, to_field, db_constraint, **kwargs)
示例4: test_do_nothing
# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import DO_NOTHING [as 别名]
def test_do_nothing(self):
# Testing DO_NOTHING is a bit harder: It would raise IntegrityError for a normal model,
# so we connect to pre_delete and set the fk to a known value.
replacement_r = R.objects.create()
def check_do_nothing(sender, **kwargs):
obj = kwargs['instance']
obj.donothing_set.update(donothing=replacement_r)
models.signals.pre_delete.connect(check_do_nothing)
a = create_a('do_nothing')
a.donothing.delete()
a = A.objects.get(pk=a.pk)
self.assertEqual(replacement_r, a.donothing)
models.signals.pre_delete.disconnect(check_do_nothing)
示例5: __init__
# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import DO_NOTHING [as 别名]
def __init__(self, *args, **kwargs):
kwargs['on_delete'] = models.DO_NOTHING
super().__init__(*args, **kwargs)
示例6: __init__
# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import DO_NOTHING [as 别名]
def __init__(self, field, to, related_name=None, limit_choices_to=None, related_query_name=None):
super(GenericRel, self).__init__(field=field, to=to, related_name=related_query_name or '+',
limit_choices_to=limit_choices_to, on_delete=DO_NOTHING,
related_query_name=related_query_name)
示例7: __init__
# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import DO_NOTHING [as 别名]
def __init__(self, verbose_name=None, choices=None, to_field=None, **kwargs):
self.suggestions_source_field = to_field
self.suggestions = choices
kwargs.update(
db_constraint=False, null=True, on_delete=models.DO_NOTHING,
to=self.suggestions, to_field=to_field, verbose_name=verbose_name)
super().__init__(**kwargs)
示例8: __init__
# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import DO_NOTHING [as 别名]
def __init__(self, field, to, related_name=None, related_query_name=None, limit_choices_to=None):
super(GenericRel, self).__init__(
field, to,
related_name=related_query_name or '+',
related_query_name=related_query_name,
limit_choices_to=limit_choices_to,
on_delete=DO_NOTHING,
)
示例9: test_do_nothing_qscount
# 需要导入模块: from django.db import models [as 别名]
# 或者: from django.db.models import DO_NOTHING [as 别名]
def test_do_nothing_qscount(self):
"""
A models.DO_NOTHING relation doesn't trigger a query.
"""
b = Base.objects.create()
with self.assertNumQueries(1):
# RelToBase should not be queried.
b.delete()
self.assertEqual(Base.objects.count(), 0)