Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
239 views
in Technique[技术] by (71.8m points)

python - How to insert NULL value in existing object's field using Django

I am trying to insert the null value in some fields of a predefined object.

my models.py:

class myCustomeUser(AbstractUser):
    username = models.CharField(max_length=20, unique="True", blank=False)
    password = models.CharField(max_length=20, blank=False)
    is_Employee = models.BooleanField(default=False)
    is_Industry = models.BooleanField(default=False)

    def __str__(self):
        return self.username


class Industry(models.Model):
    user = models.OneToOneField(myCustomeUser, on_delete=models.CASCADE, primary_key=True, related_name='industry_releted_user')
    name = models.CharField(max_length=200, blank=True)
    owner = models.CharField(max_length=200, blank=True)
    license = models.IntegerField(null=True, unique=True)
    industry_extrafield = models.TextField(blank=True)

    def __str__(self):
        return self.name

class Employee(models.Model):
    user = models.ForeignKey(myCustomeUser, null=True, blank=True, on_delete=models.CASCADE)
    industry = models.ForeignKey(Industry, null=True, blank=True, on_delete=models.CASCADE)
    i_id = models.IntegerField(unique=True)
    name = models.CharField(max_length=200, blank=False, null=True)
    gmail = models.EmailField(null=True, blank=False, unique=True)
    rank = models.CharField(max_length=20, blank=False, null=True)
    employee_varified = models.BooleanField(default=False, blank=True, null=True)

    def __str__(self):
        return self.name

I have already created an Employee object. Now I am trying to delete some of that existing Employee object's field in views.py by the following code:

Identified_employee = Employee.objects.get(i_id=pk)

if request.method == 'POST':
        Identified_employee.industry = NULL
        Identified_employee.i_id = NULL
        Identified_employee.rank = NULL
        Identified_employee.save()

But it says error in terminal like:

    Traceback (most recent call last):
      File "G:Pythonlibsite-packagesdjongocursor.py", line 51, in execute
        self.result = Query(
      File "G:Pythonlibsite-packagesdjongosql2mongoquery.py", line 783, in __init__
        self._query = self.parse()
      File "G:Pythonlibsite-packagesdjongosql2mongoquery.py", line 868, in parse
        raise exe from e
    djongo.exceptions.SQLDecodeError:
    
            Keyword: None
            Sub SQL: None
            FAILED SQL: INSERT INTO "app_prevjob" ("employee_id", "industry_id", "i_id", "rank") VALUES (%(0)s, %(1)s, %(2)s, %(3)s)
            Params: [3, 2, 3, 'player']
            Version: 1.3.3

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "G:Pythonlibsite-packagesdjangodbackendsutils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
  File "G:Pythonlibsite-packagesdjongocursor.py", line 59, in execute
    raise db_exe from e
djongo.database.DatabaseError

How can I fix this problem?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...