Viewing file: func_noerror_foreignkeys.py (2.17 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
""" Checks that Pylint does not complain about various methods on Django model fields. """ # pylint: disable=missing-docstring,wrong-import-position from django.db import models from django.db.models import ForeignKey, OneToOneField
class Genre(models.Model): name = models.CharField(max_length=100)
class Author(models.Model): author_name = models.CharField(max_length=100)
class ISBN(models.Model): value = models.CharField(max_length=100)
class Book(models.Model): book_name = models.CharField(max_length=100) # Check this works with and without `to` keyword author = models.ForeignKey(to="Author", on_delete=models.CASCADE) isbn = models.OneToOneField(to=ISBN, on_delete=models.CASCADE) genre = models.ForeignKey(Genre, on_delete=models.CASCADE)
def get_isbn(self): return self.isbn.value
def get_author_name(self): return self.author.author_name
class Fruit(models.Model): fruit_name = models.CharField(max_length=20)
class Seed(models.Model): fruit = ForeignKey(to=Fruit, on_delete=models.CASCADE)
def get_fruit_name(self): return self.fruit.fruit_name
class User(models.Model): username = models.CharField(max_length=32)
class UserProfile(models.Model): user = OneToOneField(User, on_delete=models.CASCADE)
def get_username(self): return self.user.username
class Human(models.Model): child = ForeignKey("self", on_delete=models.SET_NULL, null=True) parent = ForeignKey(to="self", on_delete=models.SET_NULL, null=True)
def get_grandchild(self): return self.child.child
def get_grandparent(self): return self.parent.parent
class UserPreferences(models.Model): """ Used for testing FK which refers to another model by string, not model class, see https://github.com/PyCQA/pylint-django/issues/35 """
user = ForeignKey("User", on_delete=models.CASCADE)
class UserAddress(models.Model): user = OneToOneField(to="User", on_delete=models.CASCADE) line_1 = models.CharField(max_length=100) line_2 = models.CharField(max_length=100) city = models.CharField(max_length=100) postal_code = models.CharField(max_length=100)
|