{"id":72364,"date":"2021-11-08T20:33:58","date_gmt":"2021-11-08T20:33:58","guid":{"rendered":"https:\/\/papersspot.com\/blog\/2021\/11\/08\/how-do-i-fix-these-code\/"},"modified":"2021-11-08T20:33:58","modified_gmt":"2021-11-08T20:33:58","slug":"how-do-i-fix-these-code","status":"publish","type":"post","link":"https:\/\/papersspot.com\/blog\/2021\/11\/08\/how-do-i-fix-these-code\/","title":{"rendered":"How Do I fix these Code?"},"content":{"rendered":"<p>I got this error when I run my code.<\/p>\n<p> &#8220;sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent\/child tables on relationship TopCities.posts &#8211; there are no foreign keys linking these tables. Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a &#8216;primaryjoin&#8217; expression.&#8221;<\/p>\n<p> Here is my code:<\/p>\n<p> models.py<\/p>\n<p> from app import db<br \/> from datetime import datetime<\/p>\n<p> class TopCities(db.Model):<br \/> #create column for database<br \/> #primary_key means it is unique<br \/> id = db.Column(db.Integer, primary_key=True)<br \/> city_name= db.Column(db.String(64), unique=True, index=True)<br \/> city_rank = db.Column(db.Integer())<br \/> posts = db.relationship(&#8216;Post&#8217;, backref=&#8217;author&#8217;, lazy=&#8217;dynamic&#8217;)<\/p>\n<p> def __repr__(self):<br \/> return f'{self.city_name} with rank {self.city_rank}&#8217;<\/p>\n<p> class Post(db.Model):<br \/> #create column for database<br \/> #primary_key means it is unique<br \/> id = db.Column(db.Integer, primary_key=True)<br \/> body = db.Column(db.String(256))<br \/> timestamp = db.Column(db.DateTime, default=datetime.utcnow)<br \/> user_id = db.Column(db.Integer, db.ForeignKey(&#8216;TopCities.id&#8217;))<\/p>\n<p> def __repr__(self):<br \/> return f&#8217; {self.id}: {self.body}&gt;&#8217;<\/p>\n<p> routes.py<\/p>\n<p> from app import app_obj<br \/> from app.forms import TopCities<br \/> from flask import render_template, flash, redirect<br \/> from app import db<br \/> from app.models import TopCities, Post<\/p>\n<p> @app_obj.route(&#8220;\/login&#8221;, methods = [&#8216;GET&#8217;,&#8217;POST&#8217;])<br \/> def login():<br \/> name = &#8216;Khuong&#8217;<br \/> title = &#8216;Top Cities&#8217;<br \/> top_cities = TopCities.query.all()<br \/> form = TopCities()<br \/> if form.validate_on_submit():<br \/> top_cities = Topcities.query.all(city_name=form.city_name.data)<br \/> if top_cities is None or not top_cities.check_city_rank(form.city_rank.data):<br \/> flask(&#8216;Invalid city_name or city_rank&#8217;)<br \/> else:<br \/> top_cities = TopCities(city_name = form.city_name.data, city_rank = form.city_rank.data)<br \/> db.sesion.add(top_cities)<br \/> db.session.commit()<br \/> flask(&#8216;New city is added!&#8217;)<br \/> return redirect(&#8216;\/&#8217;)<br \/> return render_template(&#8220;home.html&#8221;, name=name, title=title, form=form)<\/p>\n<p> __init__.py<\/p>\n<p> import flask<br \/> import os<br \/> from flask_sqlalchemy import SQLAlchemy<br \/> basedir = os.path.abspath(os.path.dirname(__file__))<br \/> #instance of the flask class<br \/> app_obj = flask.Flask(__name__)<br \/> app_obj.config.from_mapping(<br \/> SECRET_KEY = &#8216;it-dont-matter&#8217;,<br \/> SQLALCHEMY_DATABASE_URI = &#8216;sqlite:\/\/\/&#8217; os.path.join(basedir, &#8216;app.db&#8217;),<br \/> SQLALCHEMY_TRACK_MODIFICATIONS = False<br \/> )<br \/> db = SQLAlchemy(app_obj)<br \/> from app import routes, models<\/p>\n<p> forms.py<\/p>\n<p> from flask_wtf import FlaskForm<br \/> from wtforms import StringField, IntegerField, BooleanField, SubmitField<br \/> from wtforms.validators import DataRequired<br \/> class TopCities(FlaskForm):<br \/> city_name = StringField(&#8216;City Name&#8217;,validators=[DataRequired()])<br \/> city_rank = IntegerField(&#8216;City Rank&#8217;,validators=[DataRequired()])<br \/> is_visited = BooleanField(&#8216;Visited&#8217;)<br \/> submit = SubmitField(&#8216;Submit&#8217;)<\/p>\n<p> base.html<\/p>\n<p> {% if title %}<br \/> <title>{{title}}!<\/title><br \/> {% else %}<br \/> <title>Home<\/title><br \/> {% endif %}<\/p>\n<p> {% with messages = get_flashed_messages() %}<br \/> {% if messages %} <\/p>\n<ul> {% for m in message %} <\/p>\n<li>{{ m }}<\/li>\n<p> {% endfor %} <\/ul>\n<p> {% endif %}<br \/> {% endwith %}<br \/> {% block content %}<br \/> {% endblock %}<\/p>\n<p> home.html<\/p>\n<p> {% extends &#8220;base.html&#8221; %}<\/p>\n<p> {% block content %} <\/p>\n<h1> Welcomee {{name}}, here are top destinations! <\/h1>\n<p> <a href=\"https:\/\/www.google.com\">goooogle<\/a> <\/p>\n<ul> {% for city in top_cities %} <\/p>\n<li>{{ city }}<\/li>\n<p> {% endfor %} <\/ul>\n<p> {{ form.hidden_tag() }} <\/p>\n<p> {{ form.city_name.label }} <\/p>\n<p> {{ form.city_name(size=40) }}<\/p>\n<p> <\/p>\n<p> {{ form.city_rank.label }} <\/p>\n<p> {{ form.city_rank(size=40) }}<\/p>\n<p> <\/p>\n<p> {{ form.is_visited.label }} <\/p>\n<p> {{ form.is_visited() }}<\/p>\n<p> <\/p>\n<p> {{ &#8216;Submit&#8217; form.submit() }}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I got this error when I run my code. &#8220;sqlalchemy.exc.NoForeignKeysError: Could not determine join condition between parent\/child tables on relationship TopCities.posts &#8211; there are no foreign keys linking these tables. Ensure that referencing columns are associated with a ForeignKey or ForeignKeyConstraint, or specify a &#8216;primaryjoin&#8217; expression.&#8221; Here is my code: models.py from app import db [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[10],"class_list":["post-72364","post","type-post","status-publish","format-standard","hentry","category-research-paper-writing","tag-writing"],"_links":{"self":[{"href":"https:\/\/papersspot.com\/blog\/wp-json\/wp\/v2\/posts\/72364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/papersspot.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/papersspot.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/papersspot.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/papersspot.com\/blog\/wp-json\/wp\/v2\/comments?post=72364"}],"version-history":[{"count":0,"href":"https:\/\/papersspot.com\/blog\/wp-json\/wp\/v2\/posts\/72364\/revisions"}],"wp:attachment":[{"href":"https:\/\/papersspot.com\/blog\/wp-json\/wp\/v2\/media?parent=72364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/papersspot.com\/blog\/wp-json\/wp\/v2\/categories?post=72364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/papersspot.com\/blog\/wp-json\/wp\/v2\/tags?post=72364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}