2017-09-27 2 views
0

Python: Django 3.6.2: 1.11.4Python, Django: foreignkey apps accross ne fonctionne pas

Nous essayons d'utiliser foreignkey dans des applications. L'adresse est consommée par le client et l'agent. Nous utilisons également un jeu de cadres en ligne. Si je mets tout cela dans une application, cela fonctionne bien, y compris en frameset inline. Si je me divise en plusieurs applications, j'ai cette erreur. S'il vous plaît voir les images ci-dessous.

Foreignkey error

File "C:/Users/palak/Desktop/mergemodels\apps\sharedmodels\models.py", line   15, in <module> 
class Address(models.Model): 
File "C:/Users/palak/Desktop/mergemodels\apps\sharedmodels\models.py", line 16, in Address 
    agent = models.Foreignkey('apps.agent.Agent') 
TypeError: object() takes no parameters 

Project folder structure

<BLOCKQUOTE> 

applications (dossier)
      agent de   (app)
              models.py
        client (app)
              models.py
        sharedmodels (app)
              models.py

S'il vous plaît noter les applications de la structure de dossier ci-dessus.

sharedmodels/models.py

from django.db import models 
#from apps.agent.models import Agent 

class ContactInfo(models.Model): 
    mobile_no = models.CharField(max_length=8) 
    phone_no = models.CharField(max_length=10) 
class Location(models.Model): 
    location_name = models.CharField(max_length=50) 
    city = models.CharField(max_length=20, blank=True, null=True) 
    state = models.CharField(max_length=20, blank=True, null=True) 
class Address(models.Model): 
    #agent = models.Foreignkey(Agent) 
    address1 = models.CharField(max_length=100) 
    address2 = models.CharField(max_length=100) 

Agent/models.py

from django.db import models 
from apps.sharedmodels.models import Location, Address, ContactInfo 

class Agent(models.Model): 
    first_name = models.CharField(max_length=20) 
    location = models.ManyToManyField(Location) 
    address = models.Foreignkey(Address) 
    contactinfo = models.OneToOneField(ContactInfo) 

client/models.py

from django.db import models 
#from apps.agent.models import Agent, Address 
from apps.sharedmodels.models import ContactInfo, Address 

class Customer(models.Model): 
    first_name = models.CharField(max_length=10) 
    #address = models.OneToOneField(Address) 
    contactinfo = models.OneToOneField(ContactInfo) 
    address = models.Foreignkey(Address) 

Settings.py - section installapps

# Application definition 
INSTALLED_APPS = [ 
    'apps.customer', 
    'apps.agent', 
    'apps.sharedmodels', 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 
+0

Toute aide immédiate est vraiment appréciée sur ce – Raghu

+1

Pourriez-vous taper votre erreur et pas un lien vers votre erreur, même pour la structure de dossier? – Legman

+0

Copie possible de [Modèle de clé étrangère Django] (https: // stackoverflow.com/questions/14663523/foreign-key-django-model) –

Répondre

0

Set clé étrangère en tant que chaîne foreignkey

agent = models.Foreignkey('agent.Agent') 
#       ^^^^^^^ 

sharedmodels/models.py

from django.db import models 


class ContactInfo(models.Model): 
    mobile_no = models.CharField(max_length=8) 
    phone_no = models.CharField(max_length=10) 


class Location(models.Model): 
    location_name = models.CharField(max_length=50) 
    city = models.CharField(max_length=20, blank=True, null=True) 
    state = models.CharField(max_length=20, blank=True, null=True) 


class Address(models.Model): 
    agent = models.ForeignKey('agent.Agent', related_name='addresses') 
    address1 = models.CharField(max_length=100) 
    address2 = models.CharField(max_length=100) 

Agent/models.py

from django.db import models 


class Agent(models.Model): 
    first_name = models.CharField(max_length=20) 
    location = models.ManyToManyField('sharedmodels.Location') 
    address = models.ForeignKey('sharedmodels.Address', related_name='agents') 
    contactinfo = models.OneToOneField('sharedmodels.ContactInfo') 


from django.db import models 

client/models.py

class Customer(models.Model): 
    first_name = models.CharField(max_length=10) 
    contactinfo = models.OneToOneField('sharedmodels.ContactInfo') 
    address = models.ForeignKey('sharedmodels.Address') 
+0

Merci beaucoup pour la réponse. Nous avons essayé cela. Nous avons même essayé 'apps.agent.Agent'. Pas de chance. – Raghu

+0

avez-vous essayé sans importer? tout votre FK sous forme de chaîne –

+0

Oui a entraîné la même erreur. – Raghu