KKlalala
KKlalala

Reputation: 975

Django / mySQL - AttributeError: 'ForeignKey' object has no attribute 'IntegerField'

I have a django project which works fine on windows. and I am trying to move it to a ubuntu. There are some problem exist when I run python manage.py runserver 8000

File "/home/zhaojf1/Web-Interaction-APP/fileUpload_app/models.py", line 151, in Machine number_pins = models.IntegerField(blank=True, null=True)

AttributeError: 'ForeignKey' object has no attribute 'IntegerField'

Also this column in the Machine table is not a foreign key item.

Code in views.py:

140 class Machine(models.Model):
141     model = models.ForeignKey('Model', db_column='model', blank=True, null=True)
142     sn = models.CharField(max_length=50, blank=True)
143     mine_lon = models.CharField(max_length=50, blank=True)
144     mine_lat = models.CharField(max_length=50, blank=True)
145     location = models.CharField(max_length=50, blank=True)
146     total_hours = models.IntegerField(blank=True, null=True)
147     travel_hours = models.IntegerField(blank=True, null=True)
148     machine_id = models.IntegerField(primary_key=True)
149     models = models.ForeignKey('Model', db_column='models', blank=True, null=True)
150     # photo_set_num = models.IntegerField(blank=True, null=True)
151     number_pins = models.IntegerField(blank=True, null=True)
152     class Meta:
153         managed = False
154         db_table = 'machine'

I have a mysql database and I generate the models.py directly from mysql using

$ python manage.py inspectdb > models.py

Upvotes: 3

Views: 3543

Answers (1)

Seb D.
Seb D.

Reputation: 5195

Your field named models shadows the models imported from Django. You can either rename the field:

other_name_for_models = models.ForeignKey('Model', db_column='models', blank=True, null=True)

or import the module with a different name

from django.db import models as django_models

class Machine(django_models.Model):
    models = django_models.ForeignKey('Model', db_column='model', blank=True, null=True)

Upvotes: 4

Related Questions