Python A Social Network with Flask How to Win Friends Related Users

Ricardo Franco
seal-mask
.a{fill-rule:evenodd;}techdegree
Ricardo Franco
Python Development Techdegree Student 14,797 Points

Related User Task 4 of 4

Can somebody please nudge me in the right direction on the last task of this code challenge? I know I am very close and I feel it is simply a syntax error. Thanks in advance.

models.py
import datetime

from flask.ext.bcrypt import generate_password_hash
from flask.ext.login import UserMixin
from peewee import *

DATABASE = SqliteDatabase(':memory:')


class User(UserMixin, Model):
    email = CharField(unique=True)
    password = CharField(max_length=100)
    join_date = DateTimeField(default=datetime.datetime.now)
    bio = CharField(default='')

    class Meta:
        database = DATABASE

    @classmethod
    def new(cls, email, password):
        cls.create(
            email=email,
            password=generate_password_hash(password)
        )


class LunchOrder(Model):
    order = TextField()
    date = DateField()
    user = ForeignKeyField(User, related_name="orders")


class Relationship(Model):
    from_user = ForeignKeyField(User, related_name='relationships')
    to_user = ForeignKeyField(User, related_name='related_to')
    created_at = DateTimeField(default=datetime.datetime.now)

    class Meta:
        database = DATABASE
        indexes = (
            (('from_user', 'to_user'), True)            
        )


def initialize():
    DATABASE.connect()
    DATABASE.create_tables([User, LunchOrder, Relationship], safe=True)
    DATABASE.close()

1 Answer

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Staff

Hi, Ricardo Franco! The problem with this is a syntax error arguably. In some versions of Python, a tuple must contain an ending comma. Some do not require it. The challenge checker is using a version that does require that extra comma. So, essentially, you're missing a single comma.

You wrote:

(('from_user', 'to_user'), True) 

But it needs one more comma on the end:

(('from_user', 'to_user'), True),  # comma on the end here

Hope this helps! :sparkles: