3

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

1 Answer 1

4

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)
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.