小编ash*_*999的帖子

Django Heroku 引发 ValueError("缺少 '%s' 的静态文件清单条目" % clean_name)

我收到 500 服务器错误,因为我的静态文件似乎存在问题:

我的项目文件夹名称是register,我有不同的用于生产和开发的设置文件:

register
--live-static
--register
----settings
------__init__.py
-----common.py
-----production.py
-----development.py
--live-static
--static
Run Code Online (Sandbox Code Playgroud)

在我的production.py文件中我有:

from register.settings.common import *
import django_heroku

django_heroku.settings(locals())

DEBUG = False
STATIC_URL = '/static/'
STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, 'static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'live-static', 'static-root')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'live-static', 'media-root'
Run Code Online (Sandbox Code Playgroud)

我已经跑过: python manage.py collect static heroku run python manage.py collectstatic

我得到了以下结果: 1626 static files copied to '/app/live-static/static-root', 4464 post-processed.

但是,当我访问我的网站后,出现错误:

raise ValueError("Missing staticfiles manifest entry for '%s'" % …
Run Code Online (Sandbox Code Playgroud)

django heroku

10
推荐指数
1
解决办法
4385
查看次数

Django - allauth:如何删除 allauth 登录和注册网址

我正在尝试使用 Django-allauth 进行某些密码重置功能,但是,我正在尝试使用 django-allauth 禁用登录/注册。到目前为止,我还没有找到一种方法将用户重定向到我的自定义注册和登录或完全禁用这些 URL。我想知道是否有解决方法可以删除这些 URL?

我当前的方法是手动添加所有 URL,但不添加这些 URL,但这会导致我的social-login链接出现错误。

目前,我已将以下内容添加到我的网址中:

url(r"^accounts/logout/$", allauth_views.logout, name="account_logout"),
    url(r"^accounts/password/change/$", allauth_views.password_change,name="account_change_password"),
    url(r"^accounts/password/set/$", allauth_views.password_set, name="account_set_password"),
    url(r"^accounts/inactive/$", allauth_views.account_inactive, name="account_inactive"),
    # E-mail
    url(r"^accounts/email/$", allauth_views.email, name="account_email"),
    url(r"^accounts/confirm-email/$", allauth_views.email_verification_sent,name="account_email_verification_sent"),
    url(r"^accounts/confirm-email/(?P<key>[-:\w]+)/$", allauth_views.confirm_email,name="account_confirm_email"),
    # password reset
    url(r"^accounts/password/reset/$", allauth_views.password_reset,name="account_reset_password"),
    url(r"^accounts/password/reset/done/$", allauth_views.password_reset_done,name="account_reset_password_done"),
    url(r"^accounts/password/reset/key/(?P<uidb36>[0-9A-Za-z]+)-(?P<key>.+)/$",allauth_views.password_reset_from_key,name="account_reset_password_from_key"),
    url(r"^accounts/password/reset/key/done/$", allauth_views.password_reset_from_key_done,name="account_reset_password_from_key_done"),
    # social account
    path('socialaccount/login/cancelled/', allauth_socialviews.login_cancelled,name='socialaccount_login_cancelled'),
    path('socialaccount/login/error/', allauth_socialviews.login_error,name='socialaccount_login_error'),
    path('socialaccount/signup/', allauth_socialviews.signup, name='socialaccount_signup'),
    path('socialaccount/connections/', allauth_socialviews.connections, name='socialaccount_connections'),
Run Code Online (Sandbox Code Playgroud)

但是,由于我有 Google 社交登录,因此出现错误:

Reverse for 'google_login' not found. 'google_login' is not a valid view function or pattern name

我怎样才能实现这个而不引起任何错误?

django django-urls django-views django-allauth

5
推荐指数
0
解决办法
1077
查看次数

Django中两个模型之间的多对多关系

我正在尝试建立一个网站,用户可以添加他们正在学习的课程。我想知道我应该如何添加 ManyToMany 关系。这样我们就可以根据课程代码或讲师或任何字段获取课程中的所有用户。我们还可以获取用户注册的课程。目前,我的数据库结构是:

class Course(models.Model):
    course_code = models.CharField(max_length=20)
    course_university = models.CharField(max_length=100)
    course_instructor = models.CharField(max_length=100)
    course_year = models.IntegerField(('year'), validators=[MinValueValidator(1984), max_value_current_year])

    def __str__(self):
        return self.course_code
Run Code Online (Sandbox Code Playgroud)

和我的用户模型:

class Profile(AbstractUser):
    bio = models.TextField()
    image = models.ImageField(default='defaults/user/default_u_i.png', 
    courses = models.ManyToManyField('home.Course',related_name='courses')

    def __str__(self):
        return self.username
Run Code Online (Sandbox Code Playgroud)

我想知道多对多关系应该在用户模型还是课程模型中?或者它会有所作为吗?

编辑:为了将课程添加到发布对象,现在我正在使用此视图,但它似乎不起作用:

@login_required
def course_add(request):

    if request.method == "POST":
        form = CourseForm(request.POST or none)
        if form.is_valid():
            course = form.save()
            request.user.add(course)
    else:
        form = CourseForm
    context = {
        'form':form
    }
    return render(request,'home/courses/course_add.html', context)
Run Code Online (Sandbox Code Playgroud)

python django django-models django-forms

3
推荐指数
1
解决办法
1867
查看次数

在Javascript中组合字典中的数组

我有以下结构:

ley objects = {
   key1: [1, 2, 3],
   key2: [3,4,6],
   key3: [5, 6, 7],
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能组合那些保留任何重复项的数组,以便我拥有[1, 2, 3, 3, 4, 6, 6, 6, 7]?我试过了concat但似乎无法找到这样做的方法。我有更多的键,所以它必须是一些循环:

到目前为止我的尝试:

let arr = []
for(const [key, value] of Object.entries(objects)){ 
    arr.concat(value);
}
Run Code Online (Sandbox Code Playgroud)

有没有可能避免这种循环的方法?

javascript

3
推荐指数
1
解决办法
138
查看次数

React Material UI - 清除字段按钮后的自动完成组件按钮

我正在尝试在 Material UI 上的组件中添加搜索按钮Autocomplete。到目前为止,我已经能够添加该按钮,但是它总是出现在清除按钮之前,如下所示:

在此输入图像描述

如何设置InputProps,使按钮出现在X.

到目前为止我有:

<Autocomplete
    id="search-input"
    freeSolo                                   
    renderInput={(params) => (                    
        <TextField
            {...params} 
            placeholder={`...`} 
            margin="normal" 
            variant="outlined" 
            size="medium"
            InputProps={{
                ...params.InputProps,
                endAdornment: (
                <React.Fragment>                          
                    <IconButton size="small">
                        <SearchIcon />
                    </IconButton>    
                    {params.InputProps.endAdornment}               
                </React.Fragment>
                ),
            }}
        />  
    )}
/>
Run Code Online (Sandbox Code Playgroud)

我尝试更换...params.InputProps和 的顺序endAdornment,但没有任何改变。

javascript reactjs material-ui

2
推荐指数
1
解决办法
3504
查看次数

如果 JavaScript 中已存在对象参数值,则从数组中删除对象

除了针对我的情况使用双 for 循环之外,我无法找到最佳解决方案。

假设我有一个数组对象:

let array = [{param1:"A", param2:"B"}, {param1:"C", param2:"D"},{param1:"A", param2:"E"}]
Run Code Online (Sandbox Code Playgroud)

param1除了使用两个 forloops 之外,如何根据值删除重复项?

到目前为止,我使用以下方法检测重复项:

const param1Values = new Set(array.map(item => item.param1));
const hasDuplicates = paramValues.size != array.length;
Run Code Online (Sandbox Code Playgroud)

我该如何清洁,array所以我只有:

[{param1:"A", param2:"B"}, {param1:"C", param2:"D"}]
Run Code Online (Sandbox Code Playgroud)

编辑

我们想保留第一个实例param1并删除其余的

javascript

1
推荐指数
1
解决办法
27
查看次数

getElementById 未正确设置文本

我有一个模板,我试图在我的 ajax 成功函数中使用 getElementById.innerHTML 更改跨度的内容,但是,它不起作用。我没有看到问题是什么,因为当我打印出我的数据时它是正确的。目前我有这样的模板:

<div class="post-ctr">
    <div>
      <span id="like-count-d"></span>
    </div>
    <div class="like-section">
     <!-- likeBtn Form is here which gets updated -->
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的 jQuery 代码是:

$(document).ready(function (e) {
    $('.post-ctr').on("click", ".likeBtn", function (e) {
        var btn = $(this)
        e.preventDefault();
        e.stopImmediatePropagation();
        var tk = $(this).attr("data-token");
        $.ajax({
            type: "POST",
            url: $(this).attr("data-url"),
            dataType: 'json',
            data: { 'csrfmiddlewaretoken':tk },
            success: function (data){
                $(btn).closest(".like-section").html(data.post_likes);
                $(document).getElementById('like-count-d').innerHTML = data.likescount;
            },
            error: function(rs, e){
                console.log(rs.responeText);
            },
        });
    });
})
Run Code Online (Sandbox Code Playgroud)

我如何设法更新span具有该 ID的元素?

html javascript jquery

0
推荐指数
1
解决办法
98
查看次数