小编Jul*_*an 的帖子

Google字体重量300无效

在Chrome或Chrome Canary中使用谷歌字体打开无法获得300重量.

我已经试过codepen,无济于事.边缘工作得很好.

HTML

<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600" rel="stylesheet">
<div class="header-pic text-align-center">
  <h1>We make dream places <br> affordable for you.</h1>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

body {
    font-family: 'Open Sans', sans-serif;
}
.header-pic h1{
    font-size: 80px;
    font-weight: 300;
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑:为了澄清,不工作意味着没有显示300和400之间的差异.添加了截图.

添加了评论截图和代码集,因为它显示了无差异的清晰度.

http://codepen.io/anon/pen/YWVLYE 这应该是它应该是这样的: 在此输入图像描述 这就是它在我的chrome中的样子: 在此输入图像描述

html css fonts

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

添加第二个注册屏幕到社交注册allauth

我正在使用django allauth auth系统,我使用带有"next"参数的社交注册,如下所示:

<a data-provider="facebook"
   href="{% provider_login_url "facebook" method="oauth2" next=next %}">
Run Code Online (Sandbox Code Playgroud)

其中next是动态变量.

但是我想为这个过程注入第二个屏幕,要求提供一个phoner号码或其他信息.

我想我需要覆盖一个方法来重定向到第二个屏幕并将下一个参数传递给这个视图.

知道要覆盖哪种方法?

编辑:我想出了如何为"正常"注册流程执行此操作:

我重写了allauth.account.views.SignupView并添加了一个新方法:

class CustomSignupView(SignupView):
    def get_success_url(self):
        next_value = (get_next_redirect_url(self.request,
                                            self.redirect_field_name)
                      or self.success_url)
        ret = 'whatever/url?next=' + next_value
        return ret

signup = CustomSignupView.as_view()
Run Code Online (Sandbox Code Playgroud)

然后将自定义视图添加到我自己的帐户/注册URL文件中.

我无法在社交注册视图中找到该方法.有人知道在社交注册视图中评估下一个参数的位置吗?

EDIT2:

所以我做了一些挖掘.Flag用于sociallogin类方法:

@classmethod
def state_from_request(cls, request):
    if next_url:
        state['next'] = next_url
    return state
Run Code Online (Sandbox Code Playgroud)

之后,它将提供程序传递给helpers complete_social_login或complete_social_signup(当被调用时不确定).

最后有一个函数account/utils perform_login实际执行重定向.

不知道现在在哪里覆盖,仍在挖掘.

所以最后它来到:

socialaccount视图调用helpers.complete_social_signup,然后使用重定向URL调用完整注册.

我认为不得不覆盖该视图,然后通过我自己的完整社交注册方法.

EDIT3:

如果您启用了自动签名(我这样做),则永远不会调用SocialSignup ClassView,而是在socialaccount.helpers._process_signup中创建新用户.

django django-allauth

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

带有弹出窗口的Allauth登录表单Django基本模板

我正在尝试在Bootstrap模式下的django页面上创建登录和/或注册弹出窗口。

我用这个答案来创建一个上下文处理器,该处理器返回allauth登录表单,并将该表单的操作重定向到“ accounts / login /”

<form method='post' action='/accounts/login/' id='login'>
    {% csrf_token %}
    {{ login_form.as_p }}
    <input type='submit' value='Log In'>
</form>
Run Code Online (Sandbox Code Playgroud)

与上下文处理器

from allauth.account.forms import LoginForm
def login_form(request):
return {
    'login_form': LoginForm
}
Run Code Online (Sandbox Code Playgroud)

这很好用,我可以使用转到帐户/注销的按钮再次登录和注销。

直到我输入错误的用户为止,它没有显示我主页上模态中的错误,而是转到帐户/登录并在那里显示错误(这是预料之中的)。我想我需要将视图渲染到模态内,与类似。

最佳做法是什么?

编辑:我发现了这个问题,它也没有得到回答。django allauth似乎不是这种行为的正确工具。

由于它通常是众所周知的工作流程(在操作之间进行登录),因此django是否有其他应用程序可以提供此功能?还有django-registration-redux,功能更强大吗?

问候朱利安

django django-allauth

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

为表单集中的每个表单提供不同的 kwargs

我正在尝试使用表单集为一组与日期相关的时间范围创建表单:

class Event(models.Model):
   date = models.DateField()

class TimeFrame(models.Model):
   start = models.DateTimeField()
   end = models.DateTimeField()
   event = models.ForeignKey('Event')
Run Code Online (Sandbox Code Playgroud)

我有代码可以获取每个事件的时间范围查询集,并添加一个 kwarg 将其传递到我的表单中:

class SelectDatesForm(forms.Form):
    timeframes = forms.ModelChoiceField(queryset=HostTimeFrame.objects.none())

    def __init__(self, *args, **kwargs):
       qs = kwargs.pop('timeframes')
       super(SelectDatesForm, self).__init__(*args, **kwargs)
       self.fields['timeframes'].queryset = qs
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试构建一个表单集,让我可以在一页上显示多个事件的时间范围。我已经找到了这个问题,解释了如何为多种表单传递初始数据,但它与将其传递给查询集不同。

django 1.9 中还有这个新函数,但它不允许我为每个表单获取不同的查询集。

更新:我从答案中得到了解决方案,但是,每当我运行 formset.is_valid() 时,我都会收到错误:

选择一个有效的选择。该选择不是可用的选择之一。

我认为这是我所做的:

timeframes = [HostTimeFrame.objects.all()]
SelectDatesFormset = formset_factory(form=SelectDatesForm, extra=len(timeframes), formset=BaseSelectDatesFormSet)
if request.method == 'POST':
    formset = SelectDatesFormset(request.POST, form_kwargs={'timeframes_list': timeframes})
    if formset.is_valid():
        # do something with the formset.cleaned_data
        print(formset)
        pass
else:
    formset …
Run Code Online (Sandbox Code Playgroud)

python forms django django-forms

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

STM32 SPI慢速计算

我正在使用STM32F4及其SPI与本教程中的74HC595进行通信。区别在于初学者,为简单起见,我使用非DMA版本。我使用STMCubeMX配置SPI和GPIO

问题是:我没有获得锁存器PIN,我将其设置为PA8以在传输期间足够快地切换。

在此处输入图片说明

我正在使用的代码:

        spiTxBuf[0] = 0b00000010;

        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET);


        HAL_SPI_Transmit(&hspi1, spiTxBuf, 1, HAL_MAX_DELAY);
//        while(HAL_SPI_GetState(&hspi1) != HAL_SPI_STATE_READY);

        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET);

        HAL_Delay(1);
Run Code Online (Sandbox Code Playgroud)

我尝试过的事情:

  1. 将引脚PA8的最大输出速度设置为非常快 在此处输入图片说明

  2. 等待SPI完成(请参见上面的注释行)

  3. 如此处所示,将DMA用于SPI,这实际上使它变慢了。

我如何才能更快地切换?我应该在SPI完成后创建并中断并在那里设置锁存器吗?

embedded spi stm32

4
推荐指数
2
解决办法
295
查看次数

选择有效的选择 ModelChoiceField

每当我运行 form.is_valid() 时,我都会收到错误:

选择一个有效的选择。该选择不是可用的选择之一。

我认为这是我所做的:

timeframes = HostTimeFrame.objects.all()
if request.method == 'POST':
    form = SelectDatesForm(request.POST, timeframes=timeframes)
    if form.is_valid():
        pass
else:
    form = SelectDatesForm(timeframes=timeframes)
Run Code Online (Sandbox Code Playgroud)

我的表格是这样做的:

 class SelectDatesForm(forms.Form):
    timeframes = forms.ModelChoiceField(queryset=HostTimeFrame.objects.none(), widget=forms.CheckboxSelectMultiple,
                                        empty_label=None)
    def __init__(self, *args, **kwargs):
        qs = kwargs.pop('timeframes')
        super(SelectDatesForm, self).__init__(*args, **kwargs)
        self.fields['timeframes'].queryset = qs.order_by('start')
Run Code Online (Sandbox Code Playgroud)

我花了几个小时试图找到这个实际验证是在哪里完成的,我找到了它,在这里创建了一个错误。

python django django-models django-forms

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