Я пытаюсь соединить Django с Mysql, но получаю ошибку 'list' объект не имеет атрибута '_default_manager'.
ФайлViews.py
from django.shortcuts import render
from django.views.generic import ListView,DetailView,CreateView,UpdateView,DeleteView
from .models import News_Post,Category
from .forms import addArticleForm,updateArticleForm
from django.template import loader
from django.urls import reverse_lazy
import mysql.connector
# Create your views here.
mydb = mysql.connector.connect(
host="localhost",
user="root",
password="goodboy123",
database = "nexus360"
)
cursor = mydb.cursor()
# -- Display all the news on the homePage according to the latest date -- #
class HomeView(ListView):
cursor.execute("select * from news_post")
model = cursor.fetchall()
template_name='home.html'
ordering=['-date']
def get_context_data(self,*args,**kwargs):
cursor.execute("select * from category")
category_menu= cursor.fetchall()
context=super(HomeView,self).get_context_data(*args,**kwargs)
context["category_menu"]=category_menu
print(context)
return context
Models.py Здесь находится файл models.py, но я не думаю, что этот файл необходим. Я новичок в Django и не имею большого представления
from django.db import models
from django.contrib.auth.models import User
from django.urls import reverse
import datetime
from ckeditor.fields import RichTextField
#---------Creating the tables-------#
#---------Category Table---------#
class Category(models.Model):
name=models.CharField(max_length=30)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('home')
# -----UserAccount Table-----#
class UserAccount (models.Model):
user_id=models.CharField(max_length=100, null=False , primary_key=True)
email=models.EmailField(null=True)
contact_no=models.CharField(max_length=13)
password=models.CharField(max_length=100)
# -----Table column of news articles
class News_Post(models.Model):
title=models.CharField(max_length=100)
# News_content=models.TextField()
News_content=RichTextField(blank=True,null=True)
date=models.DateField(default='DEFAULT VALUE')
#post_date=models.DateField(auto_now_add=True)
author=models.ForeignKey(User,on_delete=models.CASCADE)
category=models.CharField(max_length=30,default='Politics')
def __str__(self):
return self.title + ' | '+ str(self.author)
def get_absolute_url(self):
return reverse('home')
**urls.py **
Вот файл Urls.py
from django.urls import path
from .views import HomeView,News_detail_view,Add_article_view,Update_article_view,Delete_article_view,CategoryView
from . import views
#URLconfg
urlpatterns=[
path('',HomeView.as_view(),name="home"),
path('article/<int:pk>',News_detail_view.as_view(),name="article_detail"),
path('add_article/',Add_article_view.as_view(),name="addnews"),
path('update/article/<int:pk>',Update_article_view.as_view(),name="updateArticle"),
path('remove/<int:pk>',Delete_article_view.as_view(),name="deleteArticle"),
path('category/<str:cats>/',CategoryView,name="category"),
path('search/article',views.searced_view,name="searcedview"),
path('register',views.signup, name='signup'),
]
Я пытаюсь подключить Mysql к Django и стараюсь не использовать SQLite, но когда я применяю здесь запрос или пытаюсь получить данные из SQL, он выдает мне ошибку