Giter VIP home page Giter VIP logo

typeidea's People

Contributors

jasonqiao36 avatar the5fire avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

typeidea's Issues

关于配置纯展示页面遇到的问题

老师您好,目前尝试使用Django开发一套企业官网,其中我想把首页作为一个纯展示页面,
结果遇到报错内容:
TemplateDoesNotExist at /hp
且对应路径报错提示:
Template-loader postmortem
Django tried loading these templates, in this order:

Using engine django:

django.template.loaders.filesystem.Loader: /Users/我的用户名/Documents/我的项目名/templates/config/index.html (Source does not exist)#(路径是项目真是存在的路径,html文件也存在,但是出现了这个报错)

我的项目中config作为一个app,其中的views.py内容如下:
#省略其他代码
def index_hp(request,index_id=None):
index = Index.objects.get()
return render(request,'config/index.html',context={'name':index})

项目中settings.py
#省略其他代码
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates/')], #(感觉这个BASE_DIR路径会不会要改写??)
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
#省略其他代码
INSTALLED_APPS = [
'article',
'case',
'config',(这个是app名称)

'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]


项目中urls.py配置 ...
from django.urls import re_path,path
#省略其他代码
from config.views import index_hp
#省略其他代码
urlpatterns = [
path('hp',index_hp,name='首页'),
]

然后就出现了上面描述的错误,
如果老师方便的话,还请指导一下,
先谢过!

请教作者IndexView is missing a QuerySet.的问题

您好,买了您的书,学习到7.5升级至 class-base view时出现了下面的报错,
查看了您的代码,感觉跟我的并没有太大差异,好几天了没找到问题,烦请赐教,感激不尽,谢谢

Request Method: GET
http://127.0.0.1:8000/
2.2.1
ImproperlyConfigured
IndexView is missing a QuerySet. Define IndexView.model, IndexView.queryset, or override IndexView.get_queryset().
D:\python36\lib\site-packages\django\views\generic\list.py in get_queryset, line 39
D:\python36\python.exe
3.6.7
['E:\django_prj\typeidea\typeidea', 'D:\python36\python36.zip', 'D:\python36\DLLs', 'D:\python36\lib', 'D:\python36', 'D:\python36\lib\site-packages']
Wed, 22 May 2019 22:37:17 +0800

typeidea/blog/views.py 第18行的super()的父类是哪个,class中好像没有传入

typeidea/blog/views.py 第18行的super()的父类是哪个(super().get_context_data(**kwargs)),class CommonViewMixin 中好像没有传入父类

class CommonViewMixin:
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context.update({
'sidebars': self.get_sidebars(),
})
context.update(self.get_navs())
return context

第六章,内联问题请教

第六章内联分类里的文章后面有一个删除的checkbox,点击后没有反应,怎么才能点击后让他删除呢?谢谢

在同一页面编辑关联数据的问题:《Django企业开发实战》2020年3月河北第6次印刷第123页

你按书上的代码敲完之后,重新运行程序,当你在分类编辑页添加新的文章,保存的时候会提示以下错误:
NOT NULL constraint failed: blog_post.owner_id*


这是因为post的owner字段还没有赋值,但是该字段声明的时候设置为Not Null。
解决办法:
在CategoryAdmin中添加以下函数代码:

def save_formset(self, request, form, formset, change):
""" 修改关联对象数据 """
instances = formset.save(commit=False)
for instance in instances:
    if not hasattr(instance, 'owner'):  # 防止误修改其他文章的作者
        instance.owner = request.user  # 给owner字段赋值
        instance.save()
formset.save_m2m()

在save_formset()函数中,可以修改关联对象post中的字段。


多说一句,在PostInline 要把你要编辑的Post字段要设置显示出来,

fields = (
    'title',
    'desc',
    'status',
    'content',
    'tag',
)

这里设置的就是你要在Category编辑页中显示Post要编辑的字段。
其中post的 'category'字段不需要设置,,它默认的值就是你当前编辑的分类。

book/06-admin : 有几个问题请教下作者

您好,有几个疑惑请教下:
1、blog/admin中的PostAdmin类下,save_on_top出现了两次,是否是重复冗余的代码?
2、blog/admin中的PostAdmin类下,exclude = ['owner',],这行代码在基类BaseOwnerAdmin中已经提取,这里的是否可以去除?
3、书中P122页的filter_vertical或者filter_horizontal的字段写成tags了,应该是tag的
4、我在PostAdmin引用自定义Form的时候,抛异常,显示自定义的Form没有指明Model,我指明了相关的Model之后,才能正常运行,但是我看您的代码是不用指明的,跟着您的代码重敲了一遍之后又可以了。所以有个问题,自定义Form的Model不用指明是因为装饰器已经把admin和Model和Form三个绑定在一起了吗?

代码完善:《Django企业开发实战》2020年3月河北第6次印刷第197页

书中最新评论的模板代码如下:

<ul>
    {% for comment in comments %}
    <li><a href="{{ comment.target }}">{{ comment.target.title }}</a> |
    {{ comment.nickname }} : {{ comment.content }}
    </li>
    {% endfor %}
</ul>

因为此时的 comment.target 里面的数据是评论目标页面的绝对路径如:

/post/19.html

所以此时的comment.target.title需要进行修改,应该修改为评论目标文章的标题。


修改参考思路:
在我的项目中,是给comment增加了一个新的字段target_title用于存储评论目标文章的标题。
(1)在comment/models.py中添加字段:

target_title = models.CharField(max_length=255, verbose_name='评论目标的标题')

(2)运行:

python manage.py makemigrations
python manage.py migrate

更新数据库。此时,命令行可能提示Comment模型对应的表已经存在评论记录了,这是你们之前评论时产生的记录存储在数据库中了。这时,你可以把之前的评论记录删掉,再运行以上代码,或者按照命令行提示给之前的评论记录输入默认的值。
(3)更改自定义标签,增加多一个参数target_title:
comment/templatetags/comment_block.py

from django import template

from comment.forms import CommentForm
from comment.models import Comment

register = template.Library()


@register.inclusion_tag('comment/block.html')
def comment_block(target, target_title):
    return {
        'target': target,
        'target_title': target_title,
        'comment_form': CommentForm(),
        'comment_list': Comment.get_by_target(target)
    }

(4)修改block.html模板文件:
typeidea\themes\bootstrap\templates\comment\block.html:

<hr/>
<div class="comment">
    <form class="form-group" action="/comment/" method="POST">
        {% csrf_token %}
        <input name="target" type="hidden" value="{{ target }}"/>
        <input name="target_title" type="hidden" value="{{ target_title }}"/>
        {{ comment_form }}
        <input type="submit" value="submit">
    </form>
    <!--评论列表-->
    <ul class="list-group">
        {% for comment in comment_list %}
        <li class="list-group-item">
            <div class="nickname">
                <a href="{{ comment.website }}">{{ comment.nickname }}</a>
                <span>{{ comment.created_time}}</span>
            </div>
            <div class="comment-content">
                {{ comment.content }}
            </div>
        </li>
        {% endfor %}
    </ul>
</div>

只是增加一个input标签,用于给target_title字段赋值。

<input name="target_title" type="hidden" value="{{ target_title }}"/>

(5)修改模板标签中对评论的引用:
detail.html:

{% comment_block request.path post.title %}

links.html:

{% comment_block request.path "友情链接" %}

(6)修改sidebar_comments.html模板文件:

<ul>
    {% for comment in comments %}
    <li><a href="{{ comment.target }}">{{ comment.target_title |slice:"20"|add:"..." }}</a> |
    {{ comment.nickname }} : {{ comment.content }}
    </li>
    {% endfor %}
</ul>

在这里就可以获取到评论目标的标题comment.target_title了。
在此,只是截取标题的前20个字符,并拼接"..."字符串作为结尾。

《Django企业开发实战》2020年3月河北第6次印刷第194页代码,解惑???

Comment的视图函数代码如下:
comment/views.py:

from django.shortcuts import redirect
from django.views.generic import TemplateView

from .forms import CommentForm


class CommentView(TemplateView):
    http_method_names = ['post']
    template_name = 'comment/result.html'

    def post(self, request, *args, **kwargs):
        comment_form = CommentForm(request.POST)
        target = request.POST.get('target')
        content = request.POST.get('content')  # 不知道为什么下面的content会加了p标签
        print(content)

        if comment_form.is_valid():
            instance = comment_form.save(commit=False)
            instance.target = target
            print(instance.content)
            instance.content = content  # 重新赋值,去掉p标签
            instance.save()
            succeed = True
            return redirect(target)
        else:
            succeed = False

        context = {
            'succeed': succeed,
            'form': comment_form,
            'target': target
        }
        return self.render_to_response(context)  

上面的代码和作者书中的代码一样。只是在上面的代码中,分别打印了request.POST.get('content')和instance.content,奇怪的是:instance.content多了一个p标签,打印结果如下:
image

所以我在下面的代码重新给instance.content赋值,去掉p标签。

这是什么原因造成上面的结果呢???

'PostDetailView' object has no attribute 'object'

按第9章完善完 PostDetailView后就报这个错'PostDetailView' object has no attribute 'object'
问题出在哪里,希望老师指点

`class PostDetailView(CommonViewMixin, DetailView):
queryset = Post.latest_posts()
template_name = 'blog/detail.html'
context_object_name = 'post'
pk_url_kwarg = 'post_id'

def get(self, request, *args, **kwargs):
    response = super().get(request, *args, **kwargs)
    self.handle_visited()
    return response

def handle_visited(self):
    increase_pv = False
    increase_uv = False
    uid = self.request.uid
    pv_key = 'pv:%s:%s' % (uid, self.request.path)
    if not cache.get(pv_key):
        increase_pv = True
        cache.set(pv_key, 1, 1 * 60)  # 1分钟有效
    uv_key = 'uv:%s:%s:%s' % (uid, str(date.today()), self.request.path)
    if not cache.get(uv_key):
        increase_uv = True
        cache.set(uv_key, 1, 24 * 60 * 60)  # 24小时有效
    if increase_pv and increase_uv:
        Post.objects.filter(pk=self.object.id).update(pv=F('pv') + 1, uv=F('uv') + 1)
    elif increase_pv:
        Post.objects.filter(pk=self.object.id).update(pv=F('pv') + 1)
    elif increase_uv:
        Post.objects.filter(pk=self.object.id).update(uv=F('uv') + 1)`

`

sqlite3_error

输入:python manage.py dbshell
返回错误:subprocess.CalledProcessError: Command '['sqlite3', 'C:\\Users\\风清扬TLight\\typeidea-env\\typeidea\\typeidea\\typeidea\\db.sqlite3']' returned non-zero exit status 1.

qlite3确认以安装成功,路径也加到PATH中的,截图如下
image
网上搜索解决方案并不起作用,请问这是什么问题,我应该如何处理?谢谢您的解答

p162 IndexView部分代码有问题

class IndexView(CommonViewMixin, ListView):

queryset = Post.latest_posts()
paginate_by = 5
context_object_name = 'post_list'
template_name = 'blog/list.html'

这样写会报错:
django.core.exceptions.ImproperlyConfigured: IndexView is missing a QuerySet. Define IndexView.model, IndexView.queryset, or override IndexView.get_queryset().

需要加个 model = Post 就好了。

pycharm import错误提示

Django2.2
image
这样导入pycharm会有错误提示
应该是Pycharm设置的问题,是否有人能分享一下pycharm配置

关于css引用文件路径问题

老师,又来请教静态文件相关问题。
目前框架信息:
1.Django 版本3.0.1;
2.使用static方法管理静态文件,大部分页面可以正确加载;
问题描述:
部分页面使用css引用图片文件时,web前段html中无法正确加载,
问题应该是在css中关于文件路径的写法上。

html前端片段:
#省略其他代码

#省略其他代码

index.css文件片段:
.business_area .slide_list .li1{
background: {% static ‘对应文件路径’%} no-repeat top;background-size: cover;
}
.business_area .slide_list .li2{
background: url(../img/sections/section-2.jpg) no-repeat top;background-size: cover;
}
.business_area .slide_list .li3{
background: url(../img/sections/section-11.jpg) no-repeat top;background-size: cover;
}

这种情况下引用文件无法正确加载,请教老师css中如何正确描述这种图片文件路径?
还是说只能全部写html前端文件里面用{% static ‘文件路径’%}来引用呢?
image

115页 6.1.2 报错呢。。

from django.contrib import admin

from .models import Comment

@admin.register(Comment)

class CommentAdmin(admin.ModelAdmin):

list_display = ('traget','nickname','content','website','created_time')

按书上教程敲的代码。
到这里就报错了。。。

ERRORS:
<class 'comment.admin.CommentAdmin'>: (admin.E108) The value of 'list_display[0]' refers to 'traget', which is not a callable, an attribute of 'CommentAdmin', or an attribute or method on 'comment.Comment'.

关于djdt-flamegraph插件的AttributeError: module 'signal' has no attribute 'SIGALRM':《Django企业开发实战》2020年3月河北第6次印刷第268页

系统环境:

Windows 10专业版, 64bit
python 3.7.4
Django 1.11.29
django-debug-toolbar 1.9.1
djdt-flamegraph 0.2.12

在Windows系统上使用djdt-flamegraph插件的时候,会报以下错误:

AttributeError: module 'signal' has no attribute 'SIGALRM'

这是因为在djdt-flamegraph插件的代码里面用到了 module 'signal'的SIGALRM属性 ,
image
但是在Windows系统上的 module 'signal'没有SIGALRM属性,所以才会报错。
因此,djdt-flamegraph插件暂不支持在Windows系统中使用,但是在Linux中可以正常使用(在MAC上没有测试过)。

官方github:https://github.com/23andMe/djdt-flamegraph 上也有说明:
image

似乎在windows上容易出问题

我使用win10+python3.7
在安装依赖库的时候出现了问题,supervisor==4.0.0dev0(不存在,另外supervisor不支持python3)

关于同一页面关联数据的编辑

老师,您好:
作者这个字段是不能为空的,所以PostInline 这个类,定义完之后,如果直接编辑标题和摘要就提交是会报错,owner_id 不能为空的。
我想要提交的时候直接能够把当前用户提交上去,但是在这个admin.TabularInline父类中是没有关于save方法的。

《Django企业开发实战》2019年5月北京第三次印刷6.2章节问题请教

按照需求定制admin,修改了119页内容后(blog/admin.py中list_filter=[CategoryOwnerFilter]上述内容已全部修改),运行报错,具体报错内容为:“class CategoryOwnerFilter(admin.SimpleListFilter):
File "/opt/anaconda3/lib/python3.7/site-packages/django/contrib/admin/decorators.py", line 25, in _model_admin_wrapper
raise ValueError('Wrapped class must subclass ModelAdmin.')
ValueError: Wrapped class must subclass ModelAdmin.“
是否和为本地配置的环境有关,有劳作者方便的时候,抽空指导一下,这个问题在其他论坛,未能成功找到解决办法,如能获得您的回复,不胜感激!!

参考代码:在View层封装SideBar《Django企业开发实战》2020年3月河北第6次印刷第153页

说明:
config/blocks/sidebar_posts.html和config/blocks/sidebar_comments.html模板文件跟Model层封装的一样。


修改blog/views.py为:

from django.http import HttpResponse
from django.shortcuts import render
from django.template.loader import render_to_string

from config.models import SideBar
from .models import Post, Tag, Category


# Create your views here.
def post_list(request, category_id=None, tag_id=None):
    category = None
    tag = None

    if tag_id:
        post_list, tag = Post.get_by_tag(tag_id)
    elif category_id:
        post_list, category = Post.get_by_category(category_id)
    else:
        post_list = Post.latest_posts()

    sidebars = []
    for sidebar in SideBar.get_all():
        if sidebar.display_type == SideBar.DISPLAY_HTML:
            pass
        elif sidebar.display_type == SideBar.DISPLAY_LATEST:
            context = {
                'posts': Post.latest_posts()
            }
            sidebar.content = render_to_string('config/blocks/sidebar_posts.html', context)
        elif sidebar.display_type == SideBar.DISPLAY_HOT:
            context = {
                'posts': Post.hot_posts()
            }
            sidebar.content = render_to_string('config/blocks/sidebar_posts.html', context)
        elif sidebar.display_type == SideBar.DISPLAY_COMMENT:
            context = {
                'comments': Comment.objects.filter(status=Comment.STATUS_NORMAL)
            }
            sidebar.content = render_to_string('config/blocks/sidebar_comments.html', context)
        sidebars.append(sidebar)

    context = {
        'category': category,
        'tag': tag,
        'post_list': post_list,
        'sidebars': sidebars,
    }

    context.update(Category.get_navs())
    return render(request, 'blog/list.html', context=context)


def post_detail(request, post_id):
    # return HttpResponse('detail')
    try:
        post = Post.objects.get(id=post_id)
    except Post.DoesNotExist:
        post = None

    sidebars = []
    for sidebar in SideBar.get_all():
        if sidebar.display_type == SideBar.DISPLAY_HTML:
            pass
        elif sidebar.display_type == SideBar.DISPLAY_LATEST:
            context = {
                'posts': Post.latest_posts()
            }
            sidebar.content = render_to_string('config/blocks/sidebar_posts.html', context)
        elif sidebar.display_type == SideBar.DISPLAY_HOT:
            context = {
                'posts': Post.hot_posts()
            }
            sidebar.content = render_to_string('config/blocks/sidebar_posts.html', context)
        elif sidebar.display_type == SideBar.DISPLAY_COMMENT:
            context = {
                'comments': Comment.objects.filter(status=Comment.STATUS_NORMAL)
            }
            sidebar.content = render_to_string('config/blocks/sidebar_comments.html', context)
        sidebars.append(sidebar)

    context = {
        'post': post,
        'sidebars': sidebars,
    }
    context.update(Category.get_navs())
    return render(request, 'blog/detail.html', context=context)

上面代码在view中通过判断sidebar.display_type的类型来设置sidebar.content,在list.html和detail.html中还是调用sidebar.content.

django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

老师,您好,我在分离settings.py文件时,启动提示这个错了,麻烦帮我看看。
Traceback (most recent call last):
File "E:/MyDjanoProject/typeidea/manage.py", line 23, in
main()
File "E:/MyDjanoProject/typeidea/manage.py", line 19, in main
execute_from_command_line(sys.argv)
File "D:\Python38-32\lib\site-packages\django\core\management_init_.py", line 401, in execute_from_command_line
utility.execute()
File "D:\Python38-32\lib\site-packages\django\core\management_init_.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "D:\Python38-32\lib\site-packages\django\core\management\base.py", line 328, in run_from_argv
self.execute(*args, **cmd_options)
File "D:\Python38-32\lib\site-packages\django\core\management\commands\runserver.py", line 60, in execute
super().execute(*args, **options)
File "D:\Python38-32\lib\site-packages\django\core\management\base.py", line 369, in execute
output = self.handle(*args, **options)
File "D:\Python38-32\lib\site-packages\django\core\management\commands\runserver.py", line 67, in handle
if not settings.DEBUG and not settings.ALLOWED_HOSTS:
File "D:\Python38-32\lib\site-packages\django\conf_init_.py", line 76, in getattr
self.setup(name)
File "D:\Python38-32\lib\site-packages\django\conf_init
.py", line 63, in _setup
self.wrapped = Settings(settings_module)
File "D:\Python38-32\lib\site-packages\django\conf_init
.py", line 161, in init
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

项目已上传到github ,环境是py3.8+django3.0

第154页代码勘误:《Django企业开发实战》2020年3月河北第6次印刷

问题阐述:

当访问首页时,标签的标题没有显示为:首页 - typeidea 博客系统

问题解决:

1、修改base.html的代码:

<title>{% block title %}首页{% endblock %}- typeidea 博客系统</title>

修改为:

<title>{% block title %}{% endblock %}- typeidea 博客系统</title>

2、修改list.html代码:

{% block title %}
    {% if tag %}
    标签页:{{ tag.name }}
    {% elif  category %}
    分类页:{{ category.name }}
    {% endif %}
{% endblock %}

修改为:

{% block title %}
    {% if tag %}
    标签页:{{ tag.name }}
    {% elif  category %}
    分类页:{{ category.name }}
    {% else %}
    首页
    {% endif %}
{% endblock %}

deploy-to-cloud分支 xadmin 安装失败

Linux Python3 环境下,Clone deploy-to-cloud 分支的代码,运行 python setup.py install,出现以下报错:

Searching for xadmin==2.0.1
Reading http://mirrors.tencentyun.com/pypi/simple/xadmin/
No local packages or working download links found for xadmin==2.0.1
error: Could not find suitable distribution for Requirement.parse('xadmin==2.0.1')

搜索到的解决方法为:用 pip install git+git://github.com/sshwsfc/xadmin.git@django2 安装 xadmin,但在我自己的云服务器上,安装速度极慢。是否有其他的解决方法呢?望解答 ,谢谢

'User' object is not iterable

你好,请问这个问题可能由哪些原因造成?

Request Method: POST
Request URL: http://127.0.0.1:8000/admin/blog/post/add/?_to_field=id&_popup=1
Django Version: 1.11.20
Exception Type: TypeError
Exception Value:
'User' object is not iterable
Exception Location: /home/pan/桌面/typeidea-env/lib/python3.6/site-packages/django/utils/functional.py in inner, line 239
Python Executable: /home/pan/桌面/typeidea-env/bin/python
Python Version: 3.6.7
Python Path:
['/home/pan/桌面/typeidea/typeidea',
'/usr/lib/python36.zip',
'/usr/lib/python3.6',
'/usr/lib/python3.6/lib-dynload',
'/home/pan/桌面/typeidea-env/lib/python3.6/site-packages']

FieldError 字段错误,找了两个小时,实在不知道哪里错了。

@admin.register(Post)

class PostAdmin(admin.ModelAdmin):

list_display = [

'title','category','status',

 'created_time','operator'

 ]

list_display_links = []

list_filter = ['category',]

search_fields = ['title','category__name']

actions_on_top = True

actions_on_bottom = True

save_on_top = True

fields = (

 ('category','title'),

'desc',

 'status',

'content',

'tag',

 )

def operator(self,obj):

 return format_html(

'编辑',

reverse('admin:blog_post_change',args=(obj.id,))

)

operator.short_description = '操作'


def save_model(self, request, obj, form, change):

obj.owner = request.user

 return super(PostAdmin, self).save_model(request,obj,form,change)

报错:django.core.exceptions.FieldError: Unknown field(s) (content) specified for Post. Check fields/fieldsets/exclude attributes of class PostAdmin.

求大神帮我看看吧。。。。

5.2.3创建数据库 执行 ./manage.py makemigrations 报错

django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

.
├── blog
│   ├── admin.py
│   ├── apps.py
│   ├── init.py
│   ├── migrations
│   │   └── init.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── comment
│   ├── admin.py
│   ├── apps.py
│   ├── init.py
│   ├── migrations
│   │   └── init.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── config
│   ├── admin.py
│   ├── apps.py
│   ├── init.py
│   ├── migrations
│   │   └── init.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
└── typeidea
├── init.py
├── pycache
│   ├── init.cpython-36.pyc
│   ├── settings.cpython-36.pyc
│   ├── urls.cpython-36.pyc
│   └── wsgi.cpython-36.pyc
├── settings
│   ├── base.py
│   ├── develop.py
│   ├── init.py
│   └── pycache
│   └── init.cpython-36.pyc
├── urls.py
└── wsgi.py

有生成db.sqlite3

代码不够详尽

求一份完整的能跑通的代码,我对比着看,我这边基本上敲完了,bug太多,跑不起来

Cannot resolve keyword 'id' into field.

老师,按照您写的书编写到6.2根据需求定制admin时,在admin界面点击文章时报错,错误是:
Cannot resolve keyword 'id' into field. Choices are: created_time, is_nav, name, owner, owner_id, post, status。
请问这是什么原因导致的?

12章 报错

作者你好,我在写完12章的代码后,运行程序,编辑文章时,发现无法选择标签和分类,以下时错误反馈
Response to request with pk 2a2983f1-6dad-472b-a6eb-29542c2af75a has content type text/javascript but was unable to parse it
[19/Jun/2019 06:54:21] "GET /admin/jsi18n/ HTTP/1.1" 200 7722

Django版本的问题

带tag的文章列表

需要实现带tag的文章列表,是把tag 的name冗余到Post中,比如
tags = JSONField(blank=True, default=[])
有没有更好的方法?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.