【问题标题】:Django Blog Not all Data being importedDjango 博客 并非所有数据都被导入
【发布时间】:2020-05-22 01:28:48
【问题描述】:

我目前正在开发我的第一个 django 项目“不遵循教程”。我正在创建一个博客并尝试将我的所有图片和帖子数据导入到帖子中。我正在获取一些要导入的信息,但不是全部。具体来说,我的图像和日期没有被填充到帖子中。

views.py --------------------------------

     def home(request):
        context= {
            'posts' : Post.objects.all(),
            'comment': Comment.objects.all(),
        }
        return render(request, 'blog/home.html', context)


    def base(request):
        return render(request, 'blog/test.html')

class ArticleDetailView(DetailView):
    model = Post
    template_name = 'blog/standard.html'

-----我的html页面

 {% extends 'blog/base.html' %}
{% load static %}

{% block content %}
        <section class="main-content">
            <div class="padding">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-8">
                            <div class="single-post">
                                <div class="type-standard">
                                    <article class="post type-post">
                                        <div class="top-content text-center">
                                            <span class="category"><a href="categories.html">{{ post.category }}</a></span><!-- /.category -->
                                            <h2 class="entry-title"><a href="standard.html">{{ post.title }}</a></h2><!-- /.entry-title -->
                                            <span class="time"><time>{{ post.date_posted|date:"F d, Y" }</time></span><!-- /.time -->
                                        </div><!-- /.top-content --> 

                                        <div class="entry-thumbnail"><img src="{post.image.url }"></div><!-- /.entry-thumbnail -->

                                        <div class="entry-content">

                                            {{ post.content }}

                                            <div class="post-meta">
                                                <span class="comments pull-left"><i class="icon_comment_alt"></i> <a href="#">4 Comments</a></span><!-- /.comments -->
                                                <span class="post-social pull-right">
                                                    <a href="#"><i class="fa fa-instagram"></i></a>
                                                    <a href="#"><i class="fa fa-facebook"></i></a>
                                                    <a href="#"><i class="fa fa-twitter"></i></a>
                                                    <a href="#"><i class="fa fa-pinterest-p"></i></a>
                                                </span><!-- /.post-social -->
                                            </div><!-- /.post-meta -->
                                        </div><!-- /.entry-content -->
                                    </article><!-- /.post -->
                                </div><!-- /.type-standard -->

                                <div class="author-bio media">
                                    <div class="author-avatar media-left pull-left"><img class="img-circle" src="http://demos-jeweltheme.ipunu91y.maxcdn-edge.com/sasha/images/single/au.jpg" alt="Avatar"></div><!-- /.author-avatar -->
                                    <div class="author-details media-body">
                                        <h3 class="name"><a href="#">{{post.author}}</a></h3>
                                        <p>
                                            Donec sed elementum mi. Duis mattis dolor ante, eleifend dapibus ipsum pellentesque venenatis. Nullam elementum ligula et rhoncus interdum. In malesuada 
                                        </p>
                                        <div class="social">
                                            <a href="#"><i class="fa fa-twitter"></i></a>
                                            <a href="#"><i class="fa fa-pinterest-p"></i></a>
                                            <a href="#"><i class="fa fa-facebook"></i></a>
                                            <a href="#"><i class="fa fa-google-plus"></i></a>
                                            <a href="#"><i class="fa fa-instagram"></i></a>
                                        </div><!-- /.social -->
                                    </div><!-- /.author-details -->
                                </div><!-- /.author-bio -->

                                <nav class="post-navigation" role="navigation">
                                    <div class="nav-links prev pull-left">
                                        <span class="meta-nav"><i class="fa fa-angle-left"></i></span>

                                        <article class="post type-post media">
                                            <div class="entry-thumbnail media-left pull-left">
                                                <a href="image.html"><img src="http://demos-jeweltheme.ipunu91y.maxcdn-edge.com/sasha/images/single/n1.jpg" alt="Thumb Image"></a>
                                            </div><!-- /.entry-thumbnail -->
                                            <div class="entry-content media-body"> 
                                                <h3 class="entry-title"><a href="image.html">Cruise to Alaska</a></h3>
                                                <span class="time"><time datetime="2017-12-05">May 12, 2017</time></span><!-- /.time -->
                                            </div><!-- /.entry-content -->
                                        </article>
                                    </div><!-- .nav-links -->

                                    <div class="nav-links next pull-right">
                                        <span class="meta-nav"><i class="fa fa-angle-right"></i></span>
                                        <article class="post type-post media text-right">
                                            <div class="entry-thumbnail media-left pull-right">
                                                <a href="gallery.html"><img src="http://demos-jeweltheme.ipunu91y.maxcdn-edge.com/sasha/images/single/n2.jpg" alt="Thumb Image"></a>
                                            </div><!-- /.entry-thumbnail -->
                                            <div class="entry-content media-body">
                                                <h3 class="entry-title"><a href="gallery.html">Cruising into Spring</a></h3>
                                                <span class="time"><time datetime="2017-12-05">May 12, 2017</time></span><!-- /.time -->
                                            </div><!-- /.entry-content -->
                                        </article>        
                                    </div><!-- .nav-links -->
                                </nav><!-- /.post-navigation -->

setting.py

  STATIC_URL = '/static/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = 'media/'

STATICFILES_DIRS= [
    os.path.join(BASE_DIR, 'static')
]

我的网址链接

urlpatterns = [
   path('', views.home, name='blog-home' ),
   path('base/', views.base, name='blog-base' ),
   path('contact/', views.contact, name='contact' ),
   path('deals/<int:pk>', ArticleDetailView.as_view(), name='article-detail'),


]

models.py ---------------

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    category = models.CharField(max_length=100)
    featured = models.BooleanField()
    image = models.ImageField(default='2.jpg', upload_to='media')

    def __str__(self):
        return self.title

【问题讨论】:

    标签: python django


    【解决方案1】:

    您正在从数据库中获取所有帖子,但在您的 html 中您指的是“帖子”。

    要显示所有帖子,您的 html 应该是这样的:

    {% for post in posts %}
        <h1>{{ post.title }}</h1>
        ....
        ....
    {% endfor %}
    

    【讨论】:

    • 当点击 url 时,我通过 pk 获取帖子特定数据。我更新了上面的代码以显示我的 url 模式
    【解决方案2】:

    你的代码错了。

     <span class="time"><time>{{ post.date_posted|date:"F d, Y" }}</time></span>
    

    如果我没有误认为 img 是:

     <div class="entry-thumbnail"><img src="{{ post.image.url }}"></div>
    

    【讨论】:

    • 您好,感谢您的帮助!它适用于日期,但不适用于照片。这确实适用于我的首页,但不适用于帖子页面。
    • 您是否将帖子的 id 传递到您的帖子页面?我也不知道你是怎么在models.py中声明帖子的
    • 我更新了上面的代码以包含 models.py。查看我的终端,我收到了获取请求“GET /deals/media/media/17-172367”。这很奇怪,因为其他一切都有正确的路径,但我的图像。
    • 您还应该将 MEDIA_ROOT 添加到您的网址中。看到这个:stackoverflow.com/questions/42355538/…
    猜你喜欢
    • 1970-01-01
    • 2021-09-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2011-03-02
    • 2023-02-17
    相关资源
    最近更新 更多