Thanks Massimo.

 

Is the second point regarding the shell I raise a known issue as well?

 

 

 

 

From: web2py@googlegroups.com [mailto:web2py@googlegroups.com] On Behalf Of
Massimo Di Pierro
Sent: Tuesday, 26 February 2013 4:36 PM
To: web2py@googlegroups.com
Subject: [web2py] Re: Many to many relationships

 

we need to che change the book. "owner" is a keyword in postgresql. When we
wrote the 4th edition of the book, web2py was not checking by default.
recent versions of web2py are checking.



On Monday, 25 February 2013 17:02:09 UTC-6, Toby Wilson wrote:

Thanks Cliff and Niphlod... appreciate your assistance.

I'll go through the book a little slower and get clear on this.

In the book it shows an example using the word "owner". When I copy and
paste this in, I can't access the database administration option as I get an
internal error with the message in the ticket stating: 


<type 'exceptions.SyntaxError'> invalid table/column name "owner" is a "ALL"
reserved SQL keyword



Anyway, so I just changed it to "owne" instead and it all works.

Another thing, while going through the steps outlined in the book, I've been
using the shell in Controllers. I type a line, for example: 

db.thing.insert(name='Chair', owne=1)


and press enter and nothing happens. Then I'll type it again and hit enter
and it outputs:

In [11] : db.thing.insert(name='Chair', owne=1)
4

Showing that it worked. As I keep doing this and even change what I type in,
it only works every second time. One time I hit enter and nothing happens,
then after typing I hit enter and it seems to work.

Am I doing something wrong or is this a bug in web2py or in my installation
perhaps?

Toby

On Monday, 25 February 2013 18:24:48 UTC+11, Toby Wilson wrote:

 

Hi all,

New to web development and web2py. Know a bit of Python.

As a learning experience I've written a food tracking program that works
really well in Python and it just runs on my local PC. It just reads and
writes values into text files.

Now I'm trying to transfer that into web2py as a next step learning
experience. I'm trying to figure out the database side of it (models).

It seems what I'm dealing with is many-to-many relationships. I have a list
of meals and each meal has a list of associated ingredients. So one
ingredient can be in many meal and each meal has many ingredients.

So essentially, what the program I've written can do is add 3 x "Meal 1" to
the quantity existing in the database for "Meal 1" and then after doing that
prompt the user with:

"Do you want this to impact the level of the ingredient 'carrot'?" Y/N

And then:

"Do you want this to impact the level of the ingredient 'steak'? Y/N

etc.

And the program knows that "Meal 1" needs 3 carrots, so upon entering "Y" to
the first question, 3 carrots are automatically subtracted from the stock
level of carrots in the database.

So as meals are added, the user is prompted with associated ingredients and
can choose to update or not update the level of that associated ingredient.

In the local Python program I've written, all of this is just done through
listing things in dictionaries and using functions to manipulate the data
and then read and write to text files. Now I want to use database tables and
I'm not sure how much of the association should be in the model and how much
(if any) should be in the controller (for example in the form of a
dictionary).

I've read through the documentation on many to many relationships but
haven't got a full grasp of it yet.

I've coded a few different database structures but haven't managed to get it
right yet.

The way I've been thinking about it is, a table for meals, a table for
ingredients, and perhaps a table for associations? I've used "reference" to
get the drop down box associated, but I can't select more than ingredient. I
had a look at the Django admin login and it visually made this look a bit
easier - i.e. building the one to many relationship. How is this done in
web2py?

Any help or advice would be much appreciated.

Toby

P.S. If I have a database file in web2py and open the file through the
web2py IDE and replace the contents with a totally different database
structure and save it, what happens? Does web2py just remove what was there
in the database and replace the database tables with the new ones or does it
manage it in a different way (i.e. only add new elements etc.)?

 

-- 
 
--- 
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



No virus found in this message.
Checked by AVG - www.avg.com
Version: 2013.0.2899 / Virus Database: 2639/6113 - Release Date: 02/18/13
Internal Virus Database is out of date.

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to