Thursday, July 26, 2012

RE: Models: Referencing A Model In Another App and Different Project

I'm not sure whether there is a good solution for this problem with the
prerequisites you mentioned.
Just because you import onde model doesn't mean you have full access to the
underlying database of another project.

If nobody comes up with a better idea (I never tried something similar), here
is what I think:

Do you really have to do it this way? Why do you need the connecting link on
the model layer?
How about creating an interface to query the Artist app? (REST or whatever)

I'd either do that (REST), or I'd combine these two applications into one
project.

good luck,

Michael


-----Original Message-----
From: django-users@googlegroups.com on behalf of JJ Zolper
Sent: Thu 7/26/2012 3:12 AM
To: django-users@googlegroups.com
Subject: Models: Referencing A Model In Another App and Different Project

Hello fellow Django developers,

So here is my model that interfaces with my Artists database:



from django.db import models

class Artist(models.Model):
      name = models.CharField(max_length=30)
      genre = models.CharField(max_length=30) 
      city = models.CharField(max_length=30) 
      state = models.CharField(max_length=30) 
      country = models.CharField(max_length=30)
      website = models.UrlField()

      def __unicode__(self):
            return self.name



Okay now that you see my database backend interface here's where I'm going
next.

I've been working with GeoDjango for some time now. I've created an app
within my GeoDjango project called "discover". What's my goal? Well, I want
this app to be able to return information to my users. This app will take the
given parameters such as "locationfrom" (the user of the website inserts
their city, state) and then that value is used to bring in the artists in
their area in relation to the variable "requesteddistance" (which for example
could be 25 mi) along with another variable "genre" (a query on the artists).
So the picture is the user might say I want to see all the "Rock" artists "25
mi" from me in "Vienna, VA".

Now that you can see my project here, here is my question.

In my discover app in the models.py file I could use some help. Through this
discover app I want to be able to reference the Artists database. As you can
see from above the
models.py file has the fields to establish an Artist and their information.
Thus, when a request comes in to the discover app I want to be able to
calculate the requested information and return that. Here's where I'm
stuck... 

In my mind I feel that the appropriate way to do this is to basically create
some sort of ForeignKey in the models.py of discover to the models.py of
Artist? That way I don't have to have two databases of the same data but can
simply reference the Artist database from the discover app.

Another idea I had was instead of creating a "field" link between the two to
try to import the Artist class from the models.py to the models.py file of
the discover app? Then from my views.py file in discover I can process the
given information referenced and return the result.

Any input is welcome. I am striving to use Django's DRY (Don't Repeat
Yourself) methodolgy and try to reference the Artist database and do the
actual processing in the discover application.

Thanks a lot for your advice,

JJ Zolper

--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/django-users/-/uypkc91fB9AJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to
django-users+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment